我有一个FPV(第一人称视角)接收器,显示从安装在无人机上的FPV摄像机接收帧。发射机工作时,接收机显示摄像机视图。否则,如果连接中断或发射器不工作,则会显示噪声帧。你知道吗
噪声帧具有随机模式(有时具有更多的白色像素,有时具有更多的黑色像素)。我想用Python中的OpenCV高效地检测那些噪声帧。我知道OpenCV有一个名为cv2.fastNlMeansDenoisingColored()
的方法。但在这种情况下,我要检测的是噪声帧,而不是每帧中的噪声。你知道吗
附噪音框样本:
另一个噪波帧示例:
有效帧(可以是任何帧):
Tags:
假设您的有效视频帧至少具有一定量的颜色信息,并且您的噪声帧或多或少是黑白的,那么可能有一种使用来自HSV color space的饱和信道的简单方法。你知道吗
0.05
。你知道吗0.5
,那么至少有百分之五十的像素具有至少0.05
的饱和度,所以这个帧看起来是一个有效的帧。(如果需要,调整阈值。)可视化输出(按问题中的顺序):
主要输出:
除去整个可视化内容,
is_valid
调用在我的机器上每个图像所需的时间不到0.01秒。不确定,当你做你的录音时,你有哪些硬件,但也许这种方法也适合一些具有足够帧速率的“实时”处理。你知道吗最后一句话:我试图摆脱OpenCV直方图,直接使用NumPy计算百分比,但这比目前的方法花费了更多的时间。奇怪。你知道吗
希望有帮助!你知道吗
相关问题 更多 >
编程相关推荐