RMagick的color_histogram会产生与哈希不同的东西

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}

我在这里做错了什么想法?

Cas*_*per 5

阅读文档为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打印只是压缩输出了一点,所以这是很难你知道是怎么回事之前阅读.