当前位置: 代码网 > it编程>前端脚本>Python > OpenCV中运动目标检测及核心代码总结

OpenCV中运动目标检测及核心代码总结

2026年09月04日 Python 我要评论
一、介绍1.1运动目标检测运动目标检测指在视频序列中提取出运动的物体区域。本次实践采用了背景减除法,建立背景模型,当前帧与背景相减得到前景。二、核心代码讲解1.核心对象创建videocapture:加

一、介绍

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计算轮廓的周长。

三、总结

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

到此这篇关于opencv中运动目标检测及核心代码的文章就介绍到这了,更多相关opencv运动目标检测内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com