首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用imagemagick获取图像上的特定指示符

用imagemagick获取图像上的特定指示符
EN

Stack Overflow用户
提问于 2016-01-27 15:49:03
回答 1查看 213关注 0票数 0

我想评估一下一张照片是否模糊。实际上,使用imagemagick 6.7.7-10来识别逗号给出了一些可能很有趣的信息,并命令:

代码语言:javascript
复制
identify  -format "%[filename] sd:%[standard-deviation]\n" floue1.jpg

answer> floue1.jpg sd:7876.9

似乎是个好的开始。但是,如果我使用:

代码语言:javascript
复制
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个标准差值,一个是全局的,一个是针对每个颜色通道的,这些值与我使用第一个命令得到的单个值不同。

这些结果从何而来?我如何选择(打印)这些结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-27 16:48:17

它的工作方式如下:

代码语言:javascript
复制
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的范围。

第一行是红标准偏差,第二行是绿色,第三行是蓝色,而最后一行是所有通道的平均值。

如果您想单独访问它们,请使用:

代码语言:javascript
复制
convert floue1.jpg -format "%[filename] sd:%[fx:standard_deviation.blue]\n" info:
floue1.jpg sd:0.148943

或者,您也可以选择一个不同的,并缩放它:

代码语言:javascript
复制
convert floue1.jpg -format "%[filename] sd:%[fx:int(standard_deviation.green*255)]\n" info:
floue1.jpg sd:36

如果您想一次完成所有操作,并且正在使用bash,则可以这样做:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35041918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档