代码实现:基于opencv库的单目标跟踪算法
2018-03-22 16:03
232 查看
import cv2 ############################################################################## # 载入视频 camera = cv2.VideoCapture('tracking.avi') # 第一帧为空 firstframe = None while True: # cap.read()返回两个参数赋给两个值。 # ret的值为True或False,代表有没有读入图片。 # frame,代表当前截取一帧的图片 ret, frame = camera.read() if not ret: break #函数cvtColor:将输入图像从一个颜色空间转换到另一个颜色空间。 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) #函数GaussianBlur:将源图像与指定的高斯内核进行卷积。 gray = cv2.GaussianBlur(gray, (21, 21), 0) if firstframe is None: firstframe = gray continue #函数absdiff:将两幅图的差的绝对值输出到另一幅图上 frameDelta = cv2.absdiff(firstframe, gray) #函数threshold:对多通道阵列使用固定级别的阈值,返回两个值,第一个retVal(获得的阈值值),第二个阈值处理后的图像。 thresh = cv2.threshold(frameDelta, 25, 255, cv2.THRESH_BINARY)[1] #函数dilate:对图像进行膨胀操作 thresh = cv2.dilate(thresh, None, iterations=2) x, y, w, h = cv2.boundingRect(thresh) frame = cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 0, 255), 2) cv2.imshow("frame", frame) cv2.imshow("Thresh", thresh) cv2.imshow("frame2", frameDelta) key = cv2.waitKey(25) & 0xFF if key == ord("q"): break camera.release() cv2.destroyAllWindows()
相关文章推荐
- 基于python、dlib和opencv的200行代码实现的换脸
- 基于GraphCuts图割算法的图像分割----OpenCV代码与实现
- 基于C++和OpenCv的SIFT_图像局部特征检测算法代码的实现
- 基于GraphCuts图割算法的图像分割----OpenCV代码与实现
- 基于GraphCuts图割算法的图像分割----OpenCV代码与实现
- 基于OpenCV的人脸识别算法之二---代码实现
- java如何实现基于opencv全景图合成实例代码
- 基于GraphCuts图割算法的图像分割----OpenCV代码与实现
- 基于标记的ID检测opencv实现代码
- 基于OpenCV的 SVM算法实现数字识别(四)---代码实现
- 基于GraphCuts图割算法的图像分割----OpenCV代码与实现
- 基于opencv的小波变换的实现代码
- 基于OPENCV的CANNY边缘检测算子详细代码实现
- java基于jedisLock―redis分布式锁实现示例代码
- Java(基于Struts2) 分页实现代码
- 基于visual c++之windows核心编程代码分析(29)ICMP实现远程控制
- 基于visual c++之windows核心编程代码分析(41)实现反向连接后门
- 基于JS实现简单的样式切换效果代码
- 基于visual c++之windows核心编程代码分析(66)实现Windows服务的远程控制
- java基于TCP的socket编程简单实现[代码实践过]