有没有已知的算法可以在不查看图像的情况下自动检测出图像质量的退化?我考虑明显(可见)的损失重新编码的图像伪影,例如颜色失真、边缘噪声、块状等。例如,使用JPEG 80质量从原始来源编码的图像是好的。
我希望这是一个正确的提问地点,但如果管理员认为我应该在DSP stackexange或类似的地方提问,请转链。
我希望这是一个正确的提问地点,但如果管理员认为我应该在DSP stackexange或类似的地方提问,请转链。
经过我进行的少量测试,它确实能够很好地检测伪造,但也存在很多误报的情况。
您需要评估寻找您定义的工件的方法。一旦对这些工件进行了表征,您将需要编写每种方法以查找这些工件。这些方法可能最好用于差异图像-原始(或中间)减去编码文件。您可能需要单独分析每个颜色通道。最简单的方法是阈值-编码图像的任何部分是否超出某个阈值?对于块状和边缘噪声,我想您可能会使用某种Hough变换来识别差异图像中的形状/线条,并可能使用小波变换或类似的东西,可以调整到特定频率模式以挑选出边缘周围的振铃。
编辑(回应klo的评论):没有参考,我不确定您是否能够实现您想要的。您仍然可以尝试在单个颜色通道上应用我提到的技术。困难的部分将是没有参考,您不一定会测量任何伪影,而是图像特征。您仍然可以使用一些先验信息,例如任何块状物都将与图像框架完全对齐-不旋转。任何真实图像可能不太可能具有许多完全与框架对齐的漂亮块状特征。您还可以应用边缘查找算法,如高斯差分或Canny边缘检测,然后在定位的边缘附近应用小波滤波器以寻找振铃。对于已知的可编程方法,请参见Python的scikits-image(您从邮件列表中发布的帖子中了解到)或可能是具有Python绑定的OpenCV。我不熟悉Matlab的功能,但那也可能很好用。