gpt4 book ai didi

ruby - 使用 ruby​​-vips 的第一步

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

我正在尝试实现/转换 daltonize将色盲人的图像校正为 ruby 的算法。

javascript 中编写了两个主要的引用实现和 python + 我不熟悉的语言/环境中的其他实现。

我几乎没有图像处理方面的经验,更不用说 VIPS/ruby​​-vips 了。我想知道如何迈出第一步。该文档似乎主要使用 C/C++,而在 ruby​​ 方面很少。它也非常详细。我什至不确定要使用哪些基本操作。看起来 lin 函数是一个很好的起点,但我不确定如何应用它。

任何具有 VIPS 经验的人都可能在几分钟内算出整个算法。我想知道是否有人可以给我一些关于从哪里开始的指示。具体来说:

  • 如何访问单个 (R/G/B) 元素?
  • 是否有基于道尔顿化实现的更好方法?

最佳答案

(注意这是一个非常古老的答案,描述了两个主要版本之前的 ruby​​-vips。我已将其更新为 2.0.16 gem,即 2019 年 11 月的当前版本)

这里有完整的文档:

https://rubydoc.info/gems/ruby-vips

Vips部分有教程式的介绍:

https://rubydoc.info/gems/ruby-vips/Vips

例如:

require 'vips'

if ARGV.length < 2
raise "usage: #{$PROGRAM_NAME}: input-file output-file"
end

im = Vips::Image.new_from_file ARGV[0], access: :sequential

im *= [1, 2, 1]

mask = Vips::Image.new_from_array [
[-1, -1, -1],
[-1, 16, -1],
[-1, -1, -1]
], 8
im = im.conv mask, precision: :integer

im.write_to_file ARGV[1]

这会以流模式打开图像,将中间波段(绿色)乘以二,使用整数卷积锐化图像,然后写回结果。你可以像这样运行它:

./example.rb x.jpg y.ppm

ruby-vips 存储库中有一个完整的“daltonize”示例:

https://github.com/libvips/ruby-vips/blob/master/example/daltonize8.rb

关于ruby - 使用 ruby​​-vips 的第一步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13801073/

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