搜索由低分辨率制作的大图像
Searching for large images made from a low resolution
我的本地驱动器上有很多来自不同来源的产品图片,其中一些有点乱。我说的是分辨率较大的图像,但很明显,该分辨率是通过调整来自非常小来源的图像的大小来实现的。
是否有软件或其他软件可以找到这些通常高分辨率但质量较低的图像?感谢您的任何想法。
我有一些想法,我会展示我对 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 ("Mean Squared Error") 将图像缩小到 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 误差较低)。 =19=]
因此,我建议您查看您的图像并找到与可能存在的 up-rezzing 程度相对应的错误阈值,然后针对该阈值测试任何单个图像的错误。
如果您在Windows,这将是一样的,上面的所有代码仅用于生成绘图和数字以制作动画。一行获取MSE即可:
magick YOURIMAGE -set option:geom "%G" \( +clone -resize "${size}%" -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info:
我的本地驱动器上有很多来自不同来源的产品图片,其中一些有点乱。我说的是分辨率较大的图像,但很明显,该分辨率是通过调整来自非常小来源的图像的大小来实现的。
是否有软件或其他软件可以找到这些通常高分辨率但质量较低的图像?感谢您的任何想法。
我有一些想法,我会展示我对 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 ("Mean Squared Error") 将图像缩小到 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 误差较低)。 =19=]
因此,我建议您查看您的图像并找到与可能存在的 up-rezzing 程度相对应的错误阈值,然后针对该阈值测试任何单个图像的错误。
如果您在Windows,这将是一样的,上面的所有代码仅用于生成绘图和数字以制作动画。一行获取MSE即可:
magick YOURIMAGE -set option:geom "%G" \( +clone -resize "${size}%" -resize "%[geom]"\! \) -metric MSE -compare -format "%[distortion]" info: