有没有办法量化图像中包含的边缘信息

时间:2015-07-25 05:58:54

标签: image image-processing

我有两个版本的同一个图像,一个是原始图像,一个是平滑版本。我想知道两个图像中包含多少边缘信息作为数值而不是像感知质量度量等图像。是否有任何方法来计算边缘信息。

2 个答案:

答案 0 :(得分:1)

您可以使用Imagemagick从命令行轻松完成此操作,Imagemagick安装在大多数Linux发行版上,可用于OSX和Windows。

首先转换为grayscsle然后执行Canny Edge检测,然后计算白色像素。

我不是一台合适的电脑,只是一台iPhone,所以我无法检查,但它看起来像这样:

convert image.jpg -colorspace gray   \
    -canny 0x1+5%+10%                \                    \
    \( +clone -evaluate set 0 \) \
    -metric AE -compare          \
    -format "%[distortion]" info:
287

删除最后3行并替换为简单的图像文件名,以查看生成的边缘检测图像,而不是计算白色像素。

将白色像素数除以图像高度和宽度的乘积,以标准化不同尺寸图像的结果。

答案 1 :(得分:0)

边缘信息没有绝对的度量,因为边缘的构成取决于您应用于亮度梯度的阈值。我要做的是考虑梯度的分布(例如在x和y方向上采用Sobel算子,这样每个点的幅度就是sqrt(Gradient_x ^ 2 + Gradient_y ^ 2)。从Gradients的分布,你然后可以使用分位数(例如70%,这是Canny案例中的典型值),对于平滑的图片而言,这比未平滑的图片要低。