Java 以编程方式查找抖动或失焦的图像
大多数现代移动相机都有一系列称为图像稳定的技术,以减少由于相机镜头或相关硬件的运动而在照片中产生的抖动效果。但仍有相当多的移动相机拍摄出不稳定的照片。是否有可靠的算法或方法可以在移动设备上实现,特别是在Android上,用于查找给定输入图像是否不稳定?我不希望算法能够稳定输入图像,但是无论图像是否不稳定,算法/方法都应该可靠地返回一个确定的布尔值。它不一定是Java,但也可以是C/C++,这样就可以通过本机工具包构建它,并将API公开给顶层。下图描述了预期结果。此外,此问题涉及单个图像问题,因此在这种情况下,基于多帧的解决方案将不起作用。它是专门关于图像的,而不是视频Java 以编程方式查找抖动或失焦的图像,java,android,opencv,image-processing,Java,Android,Opencv,Image Processing,大多数现代移动相机都有一系列称为图像稳定的技术,以减少由于相机镜头或相关硬件的运动而在照片中产生的抖动效果。但仍有相当多的移动相机拍摄出不稳定的照片。是否有可靠的算法或方法可以在移动设备上实现,特别是在Android上,用于查找给定输入图像是否不稳定?我不希望算法能够稳定输入图像,但是无论图像是否不稳定,算法/方法都应该可靠地返回一个确定的布尔值。它不一定是Java,但也可以是C/C++,这样就可以通过本机工具包构建它,并将API公开给顶层。下图描述了预期结果。此外,此问题涉及单个图像问题,因此
失焦图像不会暗示这一点吗 a) 边缘模糊,因此与图像中的亮度相比,任何基于梯度的操作符的值都较低 b) 边缘模糊,因此任何基于曲率的操作符都将具有较低的值 c) 对于抖动的图片,像素将与抖动方向上的其他像素相关(平移或旋转) 我用gimp拍摄了你的照片,用Sobel表示a),用Laplacian表示b(可在openCV中获得),在上面的部分得到了更暗的图像
我想校准普通图像的阈值是相当困难的。您处理的是视频流还是单个图像 如果是视频流:最好的方法是计算每两个相邻帧之间的差值。并用差异标记每个像素。当这些像素的数量很低时,你就处在一个不摇晃的帧中。请注意,此方法不检查图像是否对焦,而仅用于消除图像中的运动模糊。 您的实现应该包括以下内容