以编程方式查找抖动或离焦图像

Sub*_*ian 9 java android opencv image-processing

大多数现代移动相机都有一系列称为图像稳定的技术,可以减少由于相机镜头或相关硬件的运动而导致的照片抖动效应.但仍然有相当多的移动相机产生摇摇欲坠的照片.是否有可靠的算法或方法可以在移动设备上实现,特别是在Android上用于查找给定输入图像是否不稳定?我不希望算法稳定输入图像,但算法/方法应该可靠地返回一个确定的布尔值,无论图像是否不稳定.它不必是Java,也可以是C/C++,以便可以通过本机工具包构建它并将API公开给顶层.下图说明了预期结果.此外,这个问题涉及单个图像问题,因此在这种情况下,基于多个帧的解决方案将不起作用.它特别是关于图像,而不是视频.

在此输入图像描述

小智 4

失焦的图像并不意味着

a)边缘模糊,因此任何基于梯度的算子与图像中的亮度相比都会具有较低的值

b)边缘模糊,因此任何基于曲率的算子都会具有较低的值

c)对于抖动图片,像素将与抖动方向上的其他像素相关(平移或旋转)

我在 gimp 中拍摄了你的照片,对 a) 应用了索贝尔,对 b) 应用了拉普拉斯算子(在 openCV 中可用),并得到了上面部分中更暗的图像。

我想校准一般图像的阈值会非常困难。