简单几行就可以实现对动态物体的追踪,足见opencv在图像处理上的强大。
python代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import cv2 import numpy as np camera = cv2.VideoCapture( 0 ) firstframe = None while True : ret,frame = camera.read() if not ret: break gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) gray = cv2.GaussianBlur(gray,( 21 , 21 ), 0 ) if firstframe is None : firstframe = gray continue frameDelta = cv2.absdiff(firstframe,gray) thresh = cv2.threshold(frameDelta, 25 , 255 , cv2.THRESH_BINARY)[ 1 ] thresh = cv2.dilate(thresh, None , iterations = 2 ) # cnts= cv2.findContours(thresh.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) 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( 1 )& 0xFF if key = = ord ( "q" ): break camera.release() cv2.destroyAllWindows() |
效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://blog.csdn.net/cike14/article/details/50649811