JPEG工件检测

时间:2012-07-04 16:16:52

标签: image-processing

是否有已知的算法能够以编程方式检测图像质量下降而无需查看图像?

我认为有损的重新编码的明显(可见)图像伪像,如颜色 扭曲,边缘噪声,阻塞等 例如,从JPEG质量为80的原始源编码的图像很好。

我希望这是一个正确的地方,但如果主持人认为我应该在DSP stackexange或类似地方询问,请重新链接。

2 个答案:

答案 0 :(得分:2)

有一个名为CMFD(复制 - 移动伪造检测)的库,它可以进行伪像检测和其他算法来检测图像伪造。它可以从http://www5.cs.fau.de/research/software/copy-move-forgery-detection/免费获得。

从我做过的几个测试中,它确实检测到伪造品,但是有很多误报。

答案 1 :(得分:1)

您需要评估查找定义的工件的方法。一旦有了这些特征,就需要对每个方法进行编码以找到这些工件。这些方法最好用于差异图像 - 原始(或中间)减去编码文件。您可能需要分别分析每个颜色通道。最简单的是一个阈值 - 编码图像的任何部分是否偏离某个阈值?对于块状和边缘噪声,我想你可能会使用某种Hough变换来识别差异图像中的形状/线条,可能还有一个小波变换或类似的东西可以调整到特定的频率模式来挑选边缘振铃。

修改(响应klo的评论): 没有参考,我不确定你是否能够完成你想要的。您仍然可以尝试应用我在各个颜色通道上提到的技术。困难的部分是没有参考,你不一定会测量任何工件,而是图像功能。您仍然可以使用一些先验信息,例如任何块效应与图像帧完全对齐 - 不旋转。任何真实的图像可能不太可能具有完全面向框架的许多很好的块状特征。您还可以应用边缘搜索算法,如高斯差分或Canny边缘检测,然后在定位边缘附近应用小波滤波器以查找振铃。

对于已知的可编程方法,请参阅python的scikits-image(您从帖子到邮件列表中了解到的)或可能是OpenCV,它具有Python绑定。我不熟悉Matlab的功能,但这也可能也有效。