搜索低分辨率的大图像

时间:2017-08-30 16:59:51

标签: image file resolution explorer image-resolution

我在本地驱动器上有很多产品图片,我从不同的来源获得,其中一些图像搞砸了。我说的是分辨率很高的图像,但很明显,这个分辨率是通过从非常小的来源调整图像大小来实现的。

是否有软件或某些东西可以找到这些通常高分辨率但质量低的图像?谢谢你的任何想法。

Example of enlarged image from a small source

1 个答案:

答案 0 :(得分:1)

我有一些想法,我将展示我在大多数Linux发行版上安装的 ImageMagick ,并且可以(免费)获得macOS和Windows。

为了澄清我在谈论的内容,当图像从较小的图像升级(上层)时,图像中缺少高频信息(细节)。这是一个例子:

enter image description here

技术是这样的。拍摄图像,复制图像,将其缩小到原始大小的百分比,然后将其缩小并测量它与原始图像的差异。这是一个例子:

magick start.jpg -set option:geom "%G" \( +clone -resize 50% -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info:
0.00220709

如果我现在循环播放,我可以获得MSE(“均方误差”),将图像大小调整为10%并备份,降至20%并备份,低至30%,然后像这样备份:

for ((size=10;size<100;size+=10)); do
   distortion=$(magick start.jpg -set option:geom "%G" \( +clone -resize "${size}%" -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info: 2>&1)
   echo $size $distortion
done

示例输出

10 0.00641669
20 0.00461728
30 0.00351362
40 0.0027639
50 0.00220709
60 0.00173019
70 0.00130171
80 0.000935031
90 0.000637741

如果再次运行,但将输出重定向到名为"data"的文件,则可以使用gnuplot绘制它:

gnuplot --persist -e "set yrange [0:0.01];set title '10: MSE vs Resize Percentage';plot 'data'"

现在,我们来到实际的角度。如果我为一个从原始大小的75%上升的文件运行绘图,那么再次对于从原始大小的50%上升的文件,再次为25%和15%,我可以把它们放在一个像这样的动画中:

enter image description here

希望您可以看到紫色点立即在与图像上传的原始尺寸百分比相对应的点处偏离x轴(MSE误差较低)。

因此,我建议你查看你的图像并找到一个与可能存在的上行程度相对应的错误阈值,然后针对该阈值测试任何单个图像的错误。

如果您在Windows上,这将是相同的,上面的所有代码仅用于生成用于制作动画的图和数字。你只需要用一行获得MSE:

magick YOURIMAGE -set option:geom "%G" \( +clone -resize "${size}%" -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info: