gpt4 book ai didi

ruby - 使用 mini_magick 或 image_science 的图像直方图?

转载 作者:数据小太阳 更新时间:2023-10-29 08:17:51 25 4
gpt4 key购买 nike

是否可以获取 histogram使用 mini_magick 或 image_science 的图像?

恐怕 mogrify 的 mini_magicks 用法不允许此类信息检索。 image_science 几乎没有记录,似乎仅限于缩略图缩放和裁剪。

一种方法是在 Ruby 中迭代每个像素并提取其值。但这需要有关像素的信息,而我在 mini_magick 中也无法获取这些信息。

我可以回退到 RMagick 或 im_magick,但它们要么不太受欢迎/不为人知,要么据说性能不佳。

记录在案:这是之前有关查找 entropy of parts of images 的问题的一部分。 .

最佳答案

解决方法是使用 mini_magick 将文件转换为 PNG 格式,将结果存储在临时文件中,然后使用“几乎纯 Ruby”png library或实际纯 ruby chunky_png检查结果。这两个库都可以很容易地逐像素迭代图像。

我怀疑您指定了 mini_magick/image_science,因为它们比 rmagick 更容易安装。那么,此解决方法可能对您有用的原因是,由于缺乏依赖性,png 和 chunky_png 可以轻松安装。

您唯一会放弃的是一点性能,但如果这是一个真正的问题,oily_png可以用一些额外的 C 魔法扩展 chunky_png。所以会有一个编译,但它不应该是一个痛苦的。

好的,我已经想出了一些有效的代码:

require 'mini_magick'
require 'chunky_png'

i = MiniMagick::Image.open("a.jpg")

i.format('png')

p = ChunkyPNG::Image.from_io(StringIO.new(i.to_blob))

p.height.times do |y|
p.width.times do |x|
p[x, y] # => here's your pixel..
end
end

您可以从那里获取直方图创建部分;-)

此外,我刚刚注意到 ImageMagick 本身可以 create histograms从命令行。如果您想要一些特定的东西,这可能没有帮助,但我想我会把它扔在那里。

关于ruby - 使用 mini_magick 或 image_science 的图像直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4945125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com