搜索由低分辨率制成的大图像
问题描述:
我在本地驱动器上有很多产品图像,我从不同的来源获得,其中一些产品搞砸了。我正在谈论分辨率很大的图像,但显然通过从非常小的来源调整图像大小来实现此分辨率。搜索由低分辨率制成的大图像
有没有一款软件能找到这些常见的高分辨率但质量较低的图像?感谢您的任何想法。
答
我有几个想法,我会告诉什么,我在与ImageMagick的这是安装在大多数Linux发行版,并提供(免费)适用于MacOS和Windows获得。
为了说明我在说什么,当图像从较小的图像变大(up-rezzed)时,缺少高频信息(细节)。下面是一个例子:
该技术是这样的。拍摄一张图像,复制图像,将其缩小到其原始大小的百分比,然后将其缩小并测量其与原始图像的差异程度。这里有一个例子:
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%,我可以把它们放在一起在动画中是这样的:
希望,你可以看到紫色的点,从x轴(其中MSE误差为低)出发,立即在对应的百分比点原始大小,图像被重新激活。
所以,我建议你看看你的图像,并找到一个错误的阈值,这个错误对应于可能存在的上升程度,然后根据该阈值测试任何单个图像的错误。
如果你是在Windows上,这将是一样的,上面的所有代码只是为了生成动画的图和数字。你只需要用一条线获得MSE:
magick YOURIMAGE -set option:geom "%G" \(+clone -resize "${size}%" -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info:
哇,这真的很复杂。我会看看它,看看我能做些什么。现在我会将你的答案设定为接受。非常感谢你! :) –