OpenCV中运动目标检测

一、介绍

1.1运动目标检测

运动目标检测指在视频序列中提取出运动的物体区域。本次实践采用了背景减除法,建立背景模型,当前帧与背景相减得到前景。

二、核心代码讲解

1.核心对象创建

VideoCapture:加载视频文件。

getStructuringElement:创建一个3*3的十字形结构元素。这个矩阵专门用于后续的形态学操作(腐蚀与膨胀)。它在保留物体形状的同时,对于对角线方向的噪声抑制效果较好。

createBackgroundSubtractorMOG2:这是混合高斯模型,MOG2算法为每个像素建立多个高斯分布模型,用来模拟背景。它能自适应光照变化。

2.一帧一帧低处理

ret为False表示视频播放完毕,直接跳出循环。

3.应用MOG2提取前景和去噪声

apply()方法接收当前帧,输出一张单通道的二值图像。其中白色(255)为运动的物体,黑色(0)为背景,灰色被算法判定为阴影。

此时的fgmask会有很多细小的白色噪点,甚至会有空洞,直接拿去用效果很差。

MORPH_OPEN为开运算:先腐蚀后膨胀,先消除白色区域边缘的细小噪声,让物体的边界向内收缩;再将腐蚀后剩余的物体轮廓涨回来,恢复原本的大小,同时填补物体内部细小的黑洞。

4.轮廓的查找和周长过滤

RETR_EXTERNAL:只检测最外层的轮廓,忽略内部嵌套的轮廓;

CHAIN_APPROX_SIMOLE:压缩轮廓点,只保留拐点,极大节省内存;

cv2.arcLength计算轮廓的周长。

三、总结

这次的实践浓缩了视频处理的完整操作:数据采集->背景建模->形态学过滤->特征提取->逻辑过滤->结果可视化

相关推荐
AndrewHZ39 分钟前
图像处理入门021 | 直方图:图像像素分布的可视化 —— cv2.calcHist 与 4 类典型分布
图像处理·opencv·直方图·直方图均衡化·cdf·灰度直方图·多通道直方图
爱吃火鸡面呀2 小时前
OpenCV 实战:文档扫描与神经风格迁移完整指南
人工智能·opencv·计算机视觉
陈年老古董6 小时前
OpenCV实战:文档扫描与图像风格迁移
人工智能·python·opencv·计算机视觉
向哆哆7 小时前
打击罂粟种植检测数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·目标检测·分类
AI的探索之旅7 小时前
97 个 OpenCV 实例(十四):图像分割,GrabCut 抠图 + inpaint 去水印
人工智能·opencv·计算机视觉
词却7 小时前
OpenCV入门(五):图像拼接、背景建模、光流估计与DNN风格迁移
opencv
派大_星7 小时前
OpenCV中的文档扫描与DNN图像处理
人工智能·opencv·计算机视觉
QT界面美化性能优化17 小时前
QT+AI:使用AI技术为QT应用程序赋能
c++·人工智能·qt·opencv·qt教程·qt6.3
AndrewHZ1 天前
图像处理入门020 | 图像二值化:阈值分割基础 —— cv2.threshold 五种类型与自适应阈值铺垫
图像处理·opencv·文档扫描·阈值分割·图像二值化·trackbar·自适应阈值