红宝石贵宾图像处理库。 是否有使用什么好的例子?(Ruby-vips image process

2019-09-17 10:42发布

我完全新的图像处理。 我什么都不知道什么是JPEG内部和它是如何工作。

我在想,如果我能找到一块地方Ruby代码执行以下操作简单:

  1. 打开JPEG文件。
  2. 通过每个像素进行迭代,并设置它的颜色为绿色FX。
  3. 结果写入另一个文件。

我在这样一个使用红宝石贵宾库来实现特别感兴趣
https://github.com/ender672/ruby-vips

我的目标 - 学习如何使用红宝石贵宾执行基本的图像处理操作(伽玛校正,亮度,色调,...)

对工作的例子不是“更复杂的任何链接你好红宝石贵宾的GitHub的页面上world'般的人会不胜感激!

如果有替代Ruby的贵宾,我会感谢他们。


UPDATE

发生了许多事情,因为我问这个问题:

  • 红宝石贵宾是宝石: http://libvips.blogspot.co.uk/2012/06/ruby-vips-launches.html
  • 对于vips8完全重写,现在基于Ruby-FFI
  • 源代码库是在这里: https://github.com/jcupitt/ruby-vips/
  • 用法的例子: https://github.com/jcupitt/ruby-vips/wiki/Examples
  • 专署图像处理的基本概念: https://github.com/jcupitt/ruby-vips/wiki/Basic-concepts
  • 红宝石贵宾融入CarrierWave上传插件Ruby on Rails的: https://github.com/eltiare/carrierwave-vips
  • 红宝石贵宾是rails6为ActiveStorage官方后端的一个

Answer 1:

更新红宝石贵宾已经改变了一点,因为这个答案写。 我已经修订其用于当前的(2018)版本。

我libvips的维护者,是红宝石贵宾包装的图像处理库之一。

蒂姆的红宝石贵宾库还未触碰了一段时间。 我这里有一个叉,与当前libvips工作:

https://github.com/jcupitt/ruby-vips

有一些例子在这里:

https://github.com/jcupitt/ruby-vips/tree/master/example

要设置红色和蓝色通道到零和刚刚离开你可能被零和G 1。红宝石贵宾乘以R和B绿色图像使用数组表示像素常数,所以可以只写:

out = in * [0, 1, 0]

一个完整的可运行的例子可能是:

#!/usr/bin/ruby

require 'vips'

im = Vips::Image.new_from_file '/home/john/pics/theo.jpg'
im *= [0, 1, 0]
im.write_to_file 'x.jpg'

还有,你可以使用一个技巧new_from_file :如果你知道你将只是在图像上做简单的顶部到底部的操作,如算术或过滤或调整大小,你可以告诉红宝石贵宾,你只需要像素顺序访问:

im = Vips::Image.new_from_file '/home/john/pics/theo.jpg', access: :sequential

现在红宝石贵宾都要流图像。 它会运行负荷,乘法和保存所有并联和存储在任何一个时间永远保持比像素的扫描线数多。 这可以提供一个非常好的改善,速度和内存使用。

要改变图像伽玛你可以尝试这样的:

im = im ** 0.5 * 255 / 255 ** 0.5

虽然这将是一个有点慢(它会调用战俘()为每个像素三次),这将会是更快,使查找表,在运行战俘(),然后通过表中的图像映射:

lut = Vips::Image.identity
lut = lut ** 0.5 * 255 /255 ** 0.5
im = im.maplut lut

如有任何疑问,请随时打开它们的rubyvips问题跟踪:

https://github.com/jcupitt/ruby-vips/issues



Answer 2:

对不起,我不知道红宝石贵宾,但ImageMagick的是一个典型的,当涉及到的图像处理。 还有的形式Ruby绑定RMagick ( 当前回购 ),也可以衍生出很多来自ImageMagick文档的功能,但也存在着三个教程在这里 ,还有很多在网络上的例子。

如果你真的想深入到图像处理,这在它的根是信号处理的形式理论(这完全是令人兴奋的和有益的,因为它往往可以让你的图像音频/视频信号的应用非常相似的算法,但它最终会变得非常沉重的数学-傅立叶变换),那么,如果数学不吓唬你,我只能推荐阅读书冈萨雷斯和伍兹,我会说这是在这一领域的一定的参考。 它是昂贵的,但有你在那里需要让你开始和远远超出。 下面是还链接到免费的电子书页面,如果你想获得不先花很多钱开始。



文章来源: Ruby-vips image processing library. Are there any good examples of usage?