使用 imagemagick 在图像上获取特定指示器
getting a specific indicator on an image with imagemagick
我想评价一张图片是否模糊。
实际使用 imagemagick 6.7.7-10
我已经看到 identify command 提供了一些可能有趣的信息,并且命令:
identify -format "%[filename] sd:%[standard-deviation]\n" floue1.jpg
回答> floue1.jpg sd:7876.9
似乎是一个好的开始。
但是,如果我使用:
identify -verbose floue1.jpg | grep stan
standard deviation: 34.8189 (0.136545)
standard deviation: 26.7428 (0.104874)
standard deviation: 29.8434 (0.117033)
standard deviation: 30.6494 (0.120194)
我看到了 4 个标准偏差值,一个是全局值,一个是每个颜色通道,这些值与我使用第一个命令获得的单个值不同。
这些结果从哪里来 from/mean,我怎样才能 select(打印)这些结果?
它是这样工作的:
identify -verbose floue1.jpg | grep stan
standard deviation: 39.0047 (0.15296)
standard deviation: 36.45 (0.142941)
standard deviation: 37.9805 (0.148943)
standard deviation: 37.8263 (0.148339)
线上的第一个数字在 0-255 范围内缩放,第二个数字标准化为 0 到 1 的范围。
第一行是红色标准差,第二行是绿色标准差,第三行是蓝色标准差,最后一行是所有通道的平均值。
如果您想单独访问它们,请使用:
convert floue1.jpg -format "%[filename] sd:%[fx:standard_deviation.blue]\n" info:
floue1.jpg sd:0.148943
或者,您可以 select 另一个并缩放它:
convert floue1.jpg -format "%[filename] sd:%[fx:int(standard_deviation.green*255)]\n" info:
floue1.jpg sd:36
如果您想要一次全部使用并且您正在使用 bash
,您可以这样做:
read sdr sdg sdb <<< $(convert floue1.jpg -format "%[fx:int(standard_deviation.red*255)] %[fx:int(standard_deviation.green*255)] %[fx:int(standard_deviation.blue*255)]" info: )
echo $sdr, $sdg, $sdb
39, 36, 37
我想评价一张图片是否模糊。 实际使用 imagemagick 6.7.7-10 我已经看到 identify command 提供了一些可能有趣的信息,并且命令:
identify -format "%[filename] sd:%[standard-deviation]\n" floue1.jpg
回答> floue1.jpg sd:7876.9
似乎是一个好的开始。 但是,如果我使用:
identify -verbose floue1.jpg | grep stan
standard deviation: 34.8189 (0.136545)
standard deviation: 26.7428 (0.104874)
standard deviation: 29.8434 (0.117033)
standard deviation: 30.6494 (0.120194)
我看到了 4 个标准偏差值,一个是全局值,一个是每个颜色通道,这些值与我使用第一个命令获得的单个值不同。
这些结果从哪里来 from/mean,我怎样才能 select(打印)这些结果?
它是这样工作的:
identify -verbose floue1.jpg | grep stan
standard deviation: 39.0047 (0.15296)
standard deviation: 36.45 (0.142941)
standard deviation: 37.9805 (0.148943)
standard deviation: 37.8263 (0.148339)
线上的第一个数字在 0-255 范围内缩放,第二个数字标准化为 0 到 1 的范围。
第一行是红色标准差,第二行是绿色标准差,第三行是蓝色标准差,最后一行是所有通道的平均值。
如果您想单独访问它们,请使用:
convert floue1.jpg -format "%[filename] sd:%[fx:standard_deviation.blue]\n" info:
floue1.jpg sd:0.148943
或者,您可以 select 另一个并缩放它:
convert floue1.jpg -format "%[filename] sd:%[fx:int(standard_deviation.green*255)]\n" info:
floue1.jpg sd:36
如果您想要一次全部使用并且您正在使用 bash
,您可以这样做:
read sdr sdg sdb <<< $(convert floue1.jpg -format "%[fx:int(standard_deviation.red*255)] %[fx:int(standard_deviation.green*255)] %[fx:int(standard_deviation.blue*255)]" info: )
echo $sdr, $sdg, $sdb
39, 36, 37