目标跟踪(1)——侦差法代码解读
来源:互联网 发布:淘宝皮草品牌 编辑:程序博客网 时间:2024/04/30 03:12
《OpenCV 3计算机视觉——python语言实现(原书第2版)》
第八章目标跟踪
|______8.1检测移动的目标
本节只是对书中代码进行详细解读
#!/usr/bin/env python#__*__coding=utf-8__*__"""利用侦差法检测背景"""import cv2import numpy as np#获取摄像头图像camera = cv2.VideoCapture(0)#获取常用的结构元素的形状 椭圆>>长轴为9,短轴为4#参数介绍MORPH_RECT(矩形), MORPH_ELLIPSE(椭圆),MORPH_CROSS(十字形)es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(9,4))#定义内核大小及元素kernel = np.ones((5,5),np.uint8)background = None#进入视频流处理while(True): #获取图像 ret,frame = camera.read() if background is None: #背景灰度化 background = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #背景高斯滤波 background = cv2.GaussianBlur(background,(21,21),0) continue #灰度化 gray_fram = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY) #高斯模糊 gray_fram = cv2.GaussianBlur(gray_fram,(21,21),0) #与背景做侦差(取差值得绝对值) diff = cv2.absdiff(background,gray_fram) #侦差结果二值化 diff = cv2.threshold(diff,25,255,cv2.THRESH_BINARY)[1] #侦差结果膨胀处理 diff = cv2.dilate(diff,es,iterations=2) #对侦差结果进行找轮廓 image,cnts,hierarchy = cv2.findContours(diff.copy(),cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) #如果轮廓变化大,则画矩形,认为有变化 for c in cnts: if cv2.contourArea(c) < 1500: continue (x,y,w,h) = cv2.boundingRect(c) cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2) cv2.imshow("contours",frame) cv2.imshow("diff",diff) if cv2.waitKey(100) & 0xff == ord("q"): breakcv2.destroyAllWindows()camera.release()
0 0
- 目标跟踪(1)——侦差法代码解读
- 基于粒子滤波的目标跟踪——解读Rob Hess的好文章
- C-COT 【目标跟踪】论文解读
- 目标跟踪(2)——背景分割器
- ubuntu下利用Dlib实现目标跟踪(下)——多目标跟踪
- 目标跟踪算法——KCF 进阶
- CV—目标跟踪资源整理
- Opencv目标跟踪—CamShift算法
- 目标跟踪1
- 目标跟踪:KCF代码分析(matlab版本)
- TLD目标跟踪算法学习(三)代码理解
- Struck跟踪算法介绍及代码解读(一)
- Struck跟踪算法介绍及代码解读(二)
- Struck跟踪算法介绍及代码解读(三)
- 目标跟踪的点跟踪技术(1)
- 目标跟踪的块跟踪技术(1)
- 运动目标跟踪(十)--CSK跟踪
- 运动目标跟踪(十四)--MIL跟踪
- HTML和CSS的知识点
- 监听器
- get和post
- HiveQL查询中JOIN语句
- 《android源代码情景分析》读后感(一)
- 目标跟踪(1)——侦差法代码解读
- 解决 Maven工程运行报错Failed to clean project: Failed to delete
- BZOJ 3942 [Usaco2015 Feb] Censoring
- 教程2--请求和响应
- winform程序限制多开以及FromMian 为主线程思路
- swaks伪造钓鱼邮件
- gstreamer 学习笔记(2): GstElement状态
- test
- 无线电频谱和波段划分