如何使用openCV作为运动检测器(不寻找视频输出) 我对C++非常陌生,并且对OpenCV做了大量的研究。 我目前正在使用网络摄像头制作一个运动检测器,并试图用它来触发一个函数(有点像一个监听器)。我的应用程序中不需要任何类型的视频。我只需要感知运动并给出一个类似布尔值的输出 我对java比较熟悉,但必须用C++编写,没有包装,没有转换器。

如何使用openCV作为运动检测器(不寻找视频输出) 我对C++非常陌生,并且对OpenCV做了大量的研究。 我目前正在使用网络摄像头制作一个运动检测器,并试图用它来触发一个函数(有点像一个监听器)。我的应用程序中不需要任何类型的视频。我只需要感知运动并给出一个类似布尔值的输出 我对java比较熟悉,但必须用C++编写,没有包装,没有转换器。,c++,opencv,sensors,motion-detection,C++,Opencv,Sensors,Motion Detection,有人能帮我指一下写作方向吗。也许有一个我应该查阅的教程或建议。甚至我应该使用不同的库而不是openCV。作为起点,我建议使用基本的图像减法,然后从那里开始 基本算法是: firstFrame = readFrame() firstFrameGrey = convertToGreyScale(firstFrame) // makes the image B&W while True secondFrame = readFrame() secondFrameGrey =

有人能帮我指一下写作方向吗。也许有一个我应该查阅的教程或建议。甚至我应该使用不同的库而不是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
对于形态学运算,使用不同的值进行实验,看看得到什么结果

更多关于

本教程介绍如何执行形态学操作

轮廓信息可与


算法应该是不言自明的,openCV拥有我命名的所有方法。

如果我理解正确,您想使用视频处理框架来检测运动,但没有视频?是的。基本上,我需要通过窗口检测运动。我没有用录像带。我只需要在检测到运动时触发我的设备从睡眠模式切换到唤醒模式。我认为不可能实现你想要的。。您需要某种输入或传感器馈送来运行某些分析以确定运动与否。。如果你不想使用视频,那就使用一些运动传感器。运动传感器不能通过玻璃工作。(无线电传感器会,但那是不可能的)红外线从玻璃上被PIR传感器反射,超声波传感器从玻璃上反弹。为什么你不能使用视频?