2017-08-30 62 views
0

我在本地驱动器上有很多产品图像,我从不同的来源获得,其中一些产品搞砸了。我正在谈论分辨率很大的图像,但显然通过从非常小的来源调整图像大小来实现此分辨率。搜索由低分辨率制成的大图像

有没有一款软件能找到这些常见的高分辨率但质量较低的图像?感谢您的任何想法。

Example of enlarged image from a small source

回答

1

我有几个想法,我会告诉什么,我在与ImageMagick的这是安装在大多数Linux发行版,并提供(免费)适用于MacOS和Windows获得。

为了说明我在说什么,当图像从较小的图像变大(up-rezzed)时,缺少高频信息(细节)。下面是一个例子:

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: 
+0

哇,这真的很复杂。我会看看它,看看我能做些什么。现在我会将你的答案设定为接受。非常感谢你! :) –