<强>一、环境强>
win10, Python3.6 OpenCV3.x;编译器:pycharm5.0.3
<强>二,实现目标强>
根据需要追踪的物体颜色,设定阈值,在视频中框选出需要追踪的物体。
<强>三,实现步骤强>
1)根据需要追踪的物体颜色,设定颜色阈值,获取追踪物体的掩膜
代码:generate_threshold.py
# - * -编码:utf - 8 - * #作者:汤姆 进口cv2 进口numpy np 帽=cv2.VideoCapture(0) #获取摄像头图像 # img=cv2.imread (“timg1.jpg”) # hsv_img=cv2.cvtColor (img cv2.COLOR_BGR2HSV) def (x): 通过 def createbars (): ”“” 实现创建六个滑块的作用,分别控制H, S, V的最高值与最低的值 ”“” cv2.createTrackbar (“H_l”、“形象”,0180年,没有什么) cv2.createTrackbar (“H_h”、“形象”,0180年,没有什么) cv2.createTrackbar (“S_l”、“形象”,0255年,没有什么) cv2.createTrackbar (“S_h”、“形象”,0255年,没有什么) cv2.createTrackbar (“V_l”、“形象”,0255年,没有什么) cv2.createTrackbar (“V_h”、“形象”,0255年,没有什么) cv2.namedWindow(“形象”) createbars() #创建六个滑块 低=np.array((0, 0, 0)) #设置初始值 上=np.array ((0, 0, 0)) 而真正的: ret,?cap.read () cv2.COLOR_BGR2HSV hsv_frame=cv2.cvtColor(帧)#将图片由BGR颜色空间转化成HSV空间,HSV可以更好地分割颜色图形 低[0]=cv2.getTrackbarPos (“H_l”、“图像”)#获取“H_l”滑块的实时的值 上[0]=cv2.getTrackbarPos (“H_h”、“图像”)#获取“H_h”滑块的实时的值 低[1]=cv2.getTrackbarPos (“S_l”、“图像”) 上[1]=cv2.getTrackbarPos (“S_h”、“图像”) 低[2]=cv2.getTrackbarPos (“V_l”、“图像”) 上[2]=cv2.getTrackbarPos (“V_h”、“图像”) 掩码=cv2.inRange (hsv_frame低,上部)# cv2.inRange()函数通过设定的最低,最高阈值获得图像的掩膜 cv2.imshow (img,框架) cv2.imshow(“面具”,面具) 如果cv2.waitKey(1)和0 xff==27日: 打破 cv2.destroyAllWindows ()
实现效果:获取需要追踪的物体颜色阈值
2)根据获取到的阈值,设定阈值范围,在视频中追踪特定颜色的物体并用框选框出所需追踪的物体
代码:tracking_object.py
# - * -编码:utf - 8 - * #作者:汤姆 进口cv2 进口numpy np 帽=cv2.VideoCapture(0) #获取摄像头视频 而真正的: ret,?cap.read() #读取每一帧图片 cv2.COLOR_BGR2HSV hsv_frame=cv2.cvtColor(帧)#将每一帧图片转化HSV空间颜色 ”“” 依据之前的脚本获取的阈值设置最高值与最低的值 ”“” 低=np.array ([0104205]) 上=np.array ([15208255]) 掩码=cv2.inRange (hsv_frame,低,上) img,无法忍受,海尔=cv2.findContours(面具,cv2.RETR_EXTERNAL cv2.CHAIN_APPROX_SIMPLE) #找出边界 cv2.drawContours(帧连续1(0255 0),3)#画出边框 dst=cv2.bitwise_and(帧,帧,面膜=面具)#对每一帧进行位与操作,获取追踪图像的颜色 # cv2.imshow(“面具”,面具) # cv2.imshow (dst, dst) cv2.imshow(“框架”,帧) 如果cv2.waitKey(1)和0 xff==27日: 打破 cv2.destroyAllWindows ()
实现效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。