嗨,所以我必须制作一个脚本(无论编程语言是什么,但我会在这里使用Java),这是一个比较两个黑白图像并告诉哪一个模糊最多的脚本。
所以我必须做一个这样的函数:
function int getImageBlurPercentage()
{
ArrayList<Integer> ColorList = new ArrayList<Integer>();
//Part 1: fill ColorList with color values (0=black, 255=white)
go through Y axis
go through X axis
ColorList -> add colorValue of each pixel; [ie: 0 to 255]
//Part 2: process (This is the part where I need help !)
int lastColor = 0;
for(int color : ColorList)
{
// Something has to be done here
// To compare pixel by pixel
// and get noise result or difference result
// and convert it to a percentage (0% - 100%)
// This is where I need your help !
}
}
所以这就是我需要你帮助的人,我真的不知道如何处理这个问题。 我认为这需要一些我吮吸的数学公式。
如果有人帮助或暗示可以引导我走上正确的道路,我将不胜感激。谢谢。
答案 0 :(得分:0)
当您模糊图像时(假设您使用高斯模糊),您实际上对图像的像素进行了一些“平均”,这意味着您可以使边缘“更平滑”。
因此要检查一个图像是否比其他图像具有“更平滑”的边缘,您可以像Jan Dvorak建议的那样查看图像的渐变,但不要忘记通过图像中的像素量对其进行标准化(否则更大)图像会得到更大的结果)。
如果你想检查两个完全不同的图像,测试将会复杂得多,因为不同的场景自然会有不同的平滑度