python 使用CV2库 实现寻迹功能

参考博客:https://blog.csdn.net/yzy_1996/article/details/85318179#commentsedit

"""使用python实现:寻迹的功能背景:可以用于小车的寻迹功能,赛道是白色部分,其余是黑色参考文献:https://blog.csdn.net/yzy_1996/article/details/85318179#commentsedit返回值:停车 0, 右转 1, 左转 -1
"""
import cv2
import numpy as npdef change_direct(temp):"""改变方向函数"""if temp > 250:print("停车")return 0elif temp > 0:print("右转")return 1else:print("左转")return -1def trace_fun():"""寻迹函数:保持"""cap = cv2.VideoCapture(1)result = Nonewhile(cap.isOpened()):# Capture frame-by-frame  ret, frame = cap.read()# 真实图# cv2.imshow('real_img', frame)# 转化为灰度图gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)# cv2.imshow("gray_img", gray)# 大津法二值化retval, dst = cv2.threshold(gray, 0, 255, cv2.THRESH_OTSU)# cv2.imshow("dst_img", dst)# 单单看第240行的像素color = dst[400]# 找到白色的像素点个数white_count = np.sum(color == 255)# 找到白色的像素点索引white_index = np.where(color == 255)# 防止white_count=0的报错if white_count == 0:continue# 找到白色像素的中心点位置center = (white_index[0][white_count - 1] + white_index[0][0]) / 2# 计算出center与标准中心点的偏移量,因为摄像头的像素为:480x640,宽度的一半direction = center - 320# 画线 图像,起点坐标,终点坐标,线的颜色, 线的大小cv2.line(frame, (320, 120), (320, 350), (0, 255, 0), 1, 4)cv2.line(frame, (300, 200), (300, 280), (0, 255, 0), 1, 4)cv2.line(frame, (340, 200), (340, 280), (0, 255, 0), 1, 4)print(direction)cv2.line(frame, (int(center), 200), (int(center), 280), (0, 0, 255), 1, 4)# 添加文字  图像,文字内容, 坐标 ,字体,大小,颜色,字体厚度cv2.putText(frame, 'distance:%s' % direction, (int(center)-40, 220), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 255), 2)cv2.imshow("frame", frame)# 判断方向的下一步操作result = change_direct(direction)if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()cv2.destroyAllWindows()if __name__ == '__main__':trace_fun()

效果:

python实现寻迹功能相关推荐

  1. 基于51单片机的智能小车(寻迹功能)

    题目:基于C52的智能小车设计与制作 1设计目的 通过构建智能小车,培养设计并实现自动控制系统的能力,在实践过程中,熟悉以单片机为核心控制芯片,设计小车的检测,驱动和显示等外围电路,采用智能控制算法实 ...

  2. c语言小车寻迹实训报告,循迹小车项目实训报告.doc

    循迹小车项目实训报告 寻迹小车的设计与制作实训报告 课程名称: C51程序设计 EDA技术 专业班级: 应电0935班 指导老师: 方跃春 谭刚林 小组成员: 黄春桥 汤政 孙巍明 阳毅 实训项目要求 ...

  3. 【毕业设计】39-基于单片机的智能小车寻迹系统的设计与实现(原理图工程+仿真工程+源代码+答辩论文+答辩PPT)

    [毕业设计]39-基于单片机的智能小车寻迹系统的设计与实现(原理图工程+仿真工程+源代码+答辩论文+答辩PPT) 文章目录 [毕业设计]39-基于单片机的智能小车寻迹系统的设计与实现(原理图工程+仿真 ...

  4. 基于STM32的麦克纳姆轮小车的寻迹实现

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-27.html 本项目用STM32F407,麦克纳姆轮小车,八路 ...

  5. 计算机毕业设计(附源码)python寻迹边境丹东旅游网站

    项目运行 环境配置: Pychram社区版+ python3.7.7 + Mysql5.7 + HBuilderX+list pip+Navicat11+Django+nodejs. 项目技术: dj ...

  6. 基于51单片机的扫地小车,扫地机器人设计 主要功能有寻迹避障,来回清扫功能,往返清扫功能

    基于51单片机的扫地小车,扫地机器人设计. 有原理图,程序代码,原文. 可做实物. 主要功能有寻迹避障,来回清扫功能,往返清扫功能. YID:3350665853241481南唐开心的卷柏

  7. 简述寻迹避障小车各个模块功能

    寻迹避障小车是一种能够自动在环境中行进,并能避开障碍物的小型机器人.它通常由以下几个模块组成: 控制模块:负责控制小车的运动,并处理来自其他模块的信息.这可能包括使用电机控制器来控制电机,以及使用传感 ...

  8. 无人机寻迹要两个单片机吗_基于OpenMV的循迹无人机设计

    基于OpenMV的循迹无人机设计 发表时间:2020-08-24 基于OpenMV机器视觉模块进行目标识别算法的研究.利用图像的滤波.二值化等算法对摄像头采集的图像进行预处理;利用边缘检测和形状识别算 ...

  9. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车前进实验调试

    在下载到开发板之前要选择好板和端口,具体参见: ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 -- Arduino相关设置 // 智能小车前进实验 //=================== ...

最新文章

  1. struts实战--实现条件查询(利用dbutils)
  2. 万事开头难,用HTML写的第一个界面,收获颇多
  3. ruby推送示例_Ruby直到示例循环
  4. 阿里巴巴发布第一台云电脑“无影” 可线上无限扩容升级
  5. 提高网站访问速度的方法汇总
  6. 博应用教你使用华为nova3添加桌面小工具
  7. javascript案例32——中文简繁体转换
  8. DAO与Servlet
  9. RESTFul API
  10. [转]寂寞的数学家和不孤独的素数
  11. oracle产生连续的数字
  12. 二叉树遍历(递归、非递归)
  13. 数据结构算法之子集树
  14. 资深架构师成长路线 -- 架构师筑基必备技能
  15. 苹果下一代iPhone曝光
  16. 大数据专业就业方向和考研院校及系统学习路线规划
  17. 计算机窗口中找不到桌面,电脑桌面上的部分图标不见了怎么办啊
  18. python利用appium实现手机APP自动化
  19. [ WebUpload ] WebUpload 插件初始化问题
  20. jpg转svg文字路径动画

热门文章

  1. zoj 3725 Painting Storages dp
  2. BigBrother的大数据之旅Day 2 Linux(2)
  3. 数据智能的本质和技术体系要求
  4. 基于JavaWeb的在线外卖系统平台设计
  5. Working Practice-召集相关人员面对面的沟通是处理问题最快的方式之一
  6. matlab永磁电机模型,采用MATLAB/Simulink对永磁同步电机进行模型仿真和调速研究
  7. 深度学习新王者AutoML和NAS
  8. 开源代码分析技巧之四——国外技术社区提问
  9. 水星路由器上网设置服务器无响应,怎么防止路由器DNS被劫持弹出广告
  10. mpv 终极教程【安装、快捷键、 播放列表jonniek/mpv-playlistmanager】