有什么方法可以量化图像中包含的边缘信息

Is there any way to quantify edge information contained in an image

我有同一张图片的两个版本,一个是原始图片,一个是平滑后的版本。我想知道两个图像中包含多少边缘信息作为数值而不是像感知质量度量等图像。有没有什么方法可以计算边缘信息。

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

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

我的电脑不对,只有 iPhone,所以我无法检查,但它看起来像这样:

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

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

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

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