我的问题和这个类似: OpenCV: Detect blinking lights in a video feed
我有一个 LED 灯,我的相机以 30fps 的速度运行。在每一帧,我都想知道灯是否亮着。和上一个问题类似,我也想得到那个点的位置。
我现在想知道如何为此实例使用 openCV(我是新手)。如果光线只是一个像素,这将很容易,但考虑到相当大的背景噪音和 LED 的尺寸,我如何才能检测到图像中最大的光源。我必须假设我不能自由设置曝光(在 iPhone 上)。
我是图像处理的新手,我该如何学习?
最佳答案
如果背景只是嘈杂,但变化不大,你可以减去背景:
你有 2 帧,你做 Frame2-Frame1,然后你应用一个阈值(阈值取决于 LED 的强度,所以你应该测试它),你设置黑色低于阈值并将高于阈值的像素变白。
如果您将图像转换为灰度图像,这将非常容易。
应该是这样的:
cvAbsDiff(img2, img1, img2);
cvThreshold(img2, img2, (double)threshold_value, 255 (if you are using an rgb image), CV_THRESH_BINARY);
如果您的 LED 灯熄灭,您应该只消除噪音,而如果您的 LED 灯亮着,您会期望找到一个白色区域,您的灯正在照亮。
关于image-processing - openCV检测闪烁的灯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877228/