OpenCV3.0 + Python3.6实现特定颜色的物体追踪

  

<强>一、环境

  

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 ()      

实现效果:获取需要追踪的物体颜色阈值

  

 OpenCV3.0 + Python3.6实现特定颜色的物体追踪

  

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 ()      

实现效果:
  

  

 OpenCV3.0 + Python3.6实现特定颜色的物体追踪

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

OpenCV3.0 + Python3.6实现特定颜色的物体追踪