Jos*_*ith 0 ruby hash rmagick imagemagick histogram
我一直在玩RMagick的color_histogram方法,以获得量化的8位图像中的颜色直方图.
然而,虽然我应该从这个方法返回一个哈希,但我得到了一些东西.检查"哈希"时IRB的输出如下所示:
=> {red=1907, green=1893, blue=2716, opacity=0=>25801, red=21141, green=14902, blue=13109, opacity=0=>3744, red=35552, green=15344, blue=8229, opacity=0=>1427, red=48734, green=19120, blue=8539, opacity=0=>1280, red=62091, green=22662, blue=8733, opacity=0=>75158, red=57917, green=33805, blue=24932, opacity=0=>275, red=47046, green=39657, blue=37365, opacity=0=>1873, red=64379, green=64336, blue=64330, opacity=0=>10442}
我在这里做错了什么想法?
阅读文档为color_histogram
您找到解释:
散列中的每个键是表示图像中出现的颜色的Pixel.与键关联的值是颜色在图像中出现的次数.
再往前看,你会发现Pixel是一个类.这就解释了奇怪的输出.散列中的每个键都是类Pixel
.所以当你看到:
{ red=1907, green=1893, blue=2716, opacity=0 => 25801 }
Run Code Online (Sandbox Code Playgroud)
你真正关注的是:
{ Pixel => histogram_count }
Run Code Online (Sandbox Code Playgroud)
要么:
{ Pixel(red=1907, green=1893, blue=2716, opacity=0) => 25801 }
Run Code Online (Sandbox Code Playgroud)
在irb
打印只是压缩输出了一点,所以这是很难你知道是怎么回事之前阅读.