如何使用OpenCV作为运动检测器(而不是寻找视频输出)
how to use openCV as a motion detector (not looking for video output)
我对c++很陌生,并且一直在对openCV进行大量研究。 我目前正在使用网络摄像头制作一个运动检测器,并尝试使用它来触发功能(有点像听众(。我的应用程序中不需要任何类型的视觉视频。例如,我只需要感知运动并给出像布尔值一样的输出。
我对java更熟悉,但它必须用c ++编写,没有包装器,没有转换器。
有人可以帮我指出写作方向吗? 也许有一个教程或建议我应该查找的东西。甚至我应该使用不同的库而不是 openCV。
作为起点,我建议使用基本的图像减法,然后从那里开始。
基本算法是:
firstFrame = readFrame()
firstFrameGrey = convertToGreyScale(firstFrame) // makes the image B&W
while True
secondFrame = readFrame()
secondFrameGrey = convertToGreyScale(secondFrame)
difference = sub(firstFrameGrey, secondFrameGrey)
threshold()
// perform some morphological operations
erosion()
dilation()
findContours()
// loop over contours and try filtering based off of area, perimeter etc.
// This filtration will allow you to detect significant changes.
// update frame
firstFrameGrey = secondFrameGrey
对于形态操作,尝试不同的值,看看你得到的结果。
有关阈值的详细信息
本教程介绍如何执行形态操作。
可在此处找到等值线信息以及区域 API
算法应该是不言自明的,openCV具有我命名的所有方法。
相关文章:
- QT在错误的班级中寻找空位
- 正在寻找C++不可变的hashset/hashmap
- 如何在c++中录制具有精确帧时间戳的视频
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何使用OpenCV-C++编写*.mp4视频?
- 开放 CV 中的动态内存分配,用于视频处理
- 寻找地理和伤害意味着超载
- 错误:(-210:不支持的格式或格式组合)功能'create'中的硬件视频解码器不支持视频源
- 寻找一种更好的方法来表示无符号字符数组
- OpenCV QT,显示视频的帧(不使用while循环)
- 我正在寻找一种优雅的方式来从元组向量创建tuple_element向量
- FFmpeg——使用硬件加速进行视频解码
- 在 openCV 中手动停止视频
- 寻找闰年的逻辑是如何运作的?
- 强制Qt相机视频格式
- 在macOS Mojave上尝试OpenCV视频捕获时"Abort Trap: 6"
- 应用程序在打开的简历中捕获视频后没有响应
- 使用 IMFSinkWriter 编码的视频的播放速度会根据宽度而变化
- C++:寻找"returning address of local variable..."的更正
- 如何使用OpenCV作为运动检测器(而不是寻找视频输出)