python3.6.3+opencv3.3.0学习笔记九--动态物体检测

本文详细介绍了使用Python3.6.3和OpenCV3.3.0进行动态物体检测的步骤,包括设置视频来源,图像灰度处理,高斯模糊,背景扣除,阈值处理,边缘检测,动态物体轮廓识别,并通过调整参数以适应不同的光照和运动条件。此外,还提到了使用手机摄像头作为无线视频源可能遇到的挑战和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路

  1. 设置视频来源
  2. 设置各种参数,包括储存,窗口,过程参数等
  3. 捕获第一帧图像
  4. 进入循环
  5. 将第一帧图像赋给过程frame
  6. 对图像进行灰度处理
  7. 对图像执行高斯模糊,使其尽可能减小灰度的变化梯度
  8. 将两幅灰度图像相减,从而将背景删除
  9. 给出阈值,将相减后的图像转化为黑白图
  10. 将多余的零星变化白点置为黑色
  11. 检测白色色块的大小和边缘
  12. 按照阈值检测白色色块的边缘
  13. 绘出动态变化物体的边缘矩形
  14. 显示
  15. 储存到本地
  16. 按下esc退出循环
  17. 清零

注意点

  1. 在储存时彩色图像和灰度黑白图像的制式不同,需要分别指出各自的制式,否则无法保存到本地。高斯模糊的阈值、相减时的阈值、色块大小的阈值、灰度变化的阈值需要不断调节,最终结果受到光影、运动、物体明暗程度、场景环境的诸多影像,和视频源也有极大的关系
  2. 循环较长,各种逻辑关系必须非常清楚
  3. 网上例程很多,但基本上不可能拿来即用,本例程基本上算是最新的
  4. 后附各种图像和动画,以供参考
  5. 本例程采用手机的摄像头作为无线IP视频源,可能会有些卡滞,640x480的质量差强人意,转化为2M大小的GIF更是打了折扣,但程序毫无疑问是畅通的。
  6. 将手机作为无线视频源也是一个技术点,在后续的学习笔记中再行记录吧。


import cv2  
import numpy as np  

#设置窗口大小
cv2.namedWindow("Video",0)
cv2.resizeWindow("Video", 640, 480)
cv2.namedWindow("Video_gray",0)
cv2.resizeWindow("Video_gray"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值