本文实例为大家分享了python opencv运动检测的具体代码,供大家参考,具体内容如下
# - * -编码:utf - 8 - * __author__='山体' __version__=' 1.0 ' __date__=' 14/07/2017 ' 进口cv2 进口numpy np 导入的时间 相机=cv2.VideoCapture(0) #参数0表示第一个摄像头 #判断视频是否打开 如果(camera.isOpened ()): 打印(“开放”) 其他: 打印(“摄像头未打开的) 背景=cv2.imread (img.png, 0) #读入一幅图像 es=cv2.getStructuringElement (cv2。4)MORPH_ELLIPSE(9日) 而真正的: #按“q”健退出循环 关键=cv2.waitKey (1),0 xff #读取视频流 抓住,img=camera.read () gray1=cv2。cv2.COLOR_BGR2GRAY cvtColor (img) 灰色=cv2。高斯模糊(gray1(21日21),0)#可在这添加处理程序 # ! ! !等相机稳定后按下W选择背景 如果键==奥德(w): 背景=灰色 打印的背景已选定的 diff=cv2。absdiff(灰色背景) 二进制=cv2。阈值(diff, 25岁,255年,cv2.THRESH_BINARY)[1] #二值化阈值处理 膨胀=cv2。扩张(二进制、es、迭代=2)#形态学膨胀& lt;——可在这添加处理程序 轮廓,等级=cv2.findContours (dilation.copy (), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) c的轮廓: #对于矩形区域,只显示大于给定阈值的轮廓,所以一些微小的变化不会显示。 如果cv2.contourArea (c) & lt;1500: 继续 (x, y, w h)=cv2.boundingRect (c) #该函数计算矩形的边界框 cv2。矩形(img (x, y), (x + w, y + h) (0 255 0), 2) cv2。imshow (img, img) cv2。imshow(扩张,扩张) 如果键==奥德(问): 打破 camera.release () # ubuntu一定要释放相机资源否则要重启才能再次使用 cv2.destroyAllWindows ()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。