函数跟踪python python如何跟踪源码

python-opencv怎样找到要跟踪对象的HSV其实这真的很简单,函数 cv2.cvtColor() 也可以用到这里 。但是现在你要传入的参数是(你想要
的)BGR 值而不是一副图 。例如,我们要找到绿色的 HSV 值,我们只需在终端输入以下命令:
**import cv2
import numpy as np
green=np.uint8([0,255,0])
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
error: /builddir/build/BUILD/opencv-2.4.6.1/
modules/imgproc/src/color.cpp:3541:
error: (-215) (scn == 3 || scn == 4)(depth == CV_8U || depth == CV_32F)
in function cvtColor
#scn (the number of channels of the source),
#i.e. self.img.channels(), is neither 3 nor 4.
#
#depth (of the source),
#i.e. self.img.depth(), is neither CV_8U nor CV_32F.
# 所以不能用 [0,255,0] ,而要用 [[[0,255,0]]]
# 这里的三层括号应该分别对应于 cvArray , cvMat , IplImage
green=np.uint8([[[0,255,0]]])
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
print hsv_green
[[[60 255 255]]]**1234567891011121314151617181912345678910111213141516171819
**扩展缩放只是改变图像的尺寸大小 。OpenCV 提供的函数 cv2.resize()
可以实现这个功能 。图像的尺寸可以自己手动设置,你也可以指定缩放因子 。我
们可以选择使用不同的插值方法 。在缩放时我们推荐使用 cv2.INTER_AREA,
在扩展时我们推荐使用 v2.INTER_CUBIC(慢) 和 v2.INTER_LINEAR 。
默认情况下所有改变图像尺寸大小的操作使用的插值方法都是 cv2.INTER_LINEAR 。
你可以使用下面任意一种方法改变图像的尺寸:**
12345671234567
**# -*- coding: utf-8 -*-
"""
@author: Andrew
"""
import cv2
import numpy as np
img=cv2.imread('tu.jpg')
res=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)
height,width=img.shape[:2]
res=cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)
while(1):
cv2.imshow('res',res)
cv2.imshow('img',img)
if cv2.waitKey(1)0xFF==27:
break
cv2.destroyAllWindows()**1234567891011121314151617181920212212345678910111213141516171819202122

目标跟踪(5)使用 Opencv 和 Python 进行对象跟踪 在本教程中,我们将学习如何基于 Opencv 和 Python 实现对象跟踪 。
【函数跟踪python python如何跟踪源码】 首先必须明确目标检测和目标跟踪有什么区别:
我们将首先讨论对象检测,然后讨论如何将对象跟踪应用于检测 。
可能有不同的应用 , 例如,计算某个区域有多少人,检查传送带上有多少物体通过,或者计算高速公路上的车辆 。
当然,看过本教程后,您会很容易地想到数以千计的想法应用于现实生活或可能应用于工业 。
在本教程中,我们将使用 3 个文件:
首先我们需要调用highway.mp4文件并创建一个mask:
正如您在示例代码中看到的,我们还使用了 createBackgroundSubtractorMOG2 函数 , 该函数返回背景比率(background ratio),然后创建mask 。
mask可视化结果:
但是,如您所见 , 图像中有很多噪点 。因此,让我们通过删除所有较小的元素来改进提?。?并将我们的注意力集中在大于某个面积的对象上 。
使用 OpenCV 的cv2.drawContours函数绘制轮廓 , 我们得到了这个结果 。
就本教程而言,分析整个窗口并不重要 。我们只对计算在某个点通过的所有车辆感兴趣,因此,我们必须定义一个感兴趣的区域 ROI 并仅在该区域应用mask 。
结果可视化如下:
函数 cv2.createBackgroundSubtractorMOG2 是在开始时添加的,没有定义参数 , 现在让我们看看如何进一步改进我们的结果 。history是第一个参数,在这种情况下,它设置为 100,因为相机是固定的 。varThreshold改为 40,因为该值越低,误报的可能性就越大 。在这种情况下,我们只对较大的对象感兴趣 。

推荐阅读