问题标签 [vips]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3056 浏览

ruby - Ruby-vips 图像处理库。有没有很好的使用例子?

我对图像处理完全陌生。我对内部 JPEG 是什么以及它是如何工作的一无所知。

我想知道,是否可以在某处找到执行以下简单操作的 ruby​​ 代码:

  1. 打开jpeg文件。
  2. 遍历每个像素并将其颜色设置为 fx green。
  3. 将结果写入另一个文件。

我对如何使用 ruby​​-vips 库
https://github.com/ender672/ruby-vips实现这一点特别感兴趣

我的目标 - 学习如何使用 ruby​​-vips 执行基本的图像处理操作(伽玛校正、亮度、色调......)

任何比 ruby​​-vips 的 github 页面上的“hello world”更复杂的工作示例的链接都将受到高度赞赏!

如果有 ruby​​-vips 的替代品,我也会感谢他们。


更新

自从我问这个问题以来发生了很多事情:

0 投票
1 回答
155 浏览

ruby-on-rails - 使用带有 16 位 tiff 的 carriewave-vips

我正在使用carrierwave-vips(带有ruby-vips)上传和处理16位tiff。16 位 tiff 将得到保存(仅对于carrierewave 来说不是问题),但我也想处理缩略图(jpeg)。问题是生成的缩略图完全被炸毁了。我能做些什么?

0 投票
1 回答
974 浏览

visual-studio-2012 - 为 Visual Studio 2012 设置 VIPS 库

我正在为 Visual Studio 2012 尝试 libvips,从 http://www.vips.ecs.soton.ac.uk/supported/current/doc/html/vipsmanual/vipsmanualse1.html#x6-60001.1.1的一个简单示例开始

我所做的是:

在http://www.vips.ecs.soton.ac.uk/supported/7.34/win32/下载并解压 libvips

添加到 VC++ 目录 -> 将目录包含为 vips-dev-7.34.1\include (vips-dev-7.34.1 是提取的文件夹)

添加到 VC++ 目录->库目录为 vips-dev-7.34.1\lib

添加系统路径条目为 vips-dev-7.34.1\bin

基本上是因为没有太多关于在 Visual Studio 中使用 libvips 的指南,所以我应用了我用于 OpenCV 的程序。该指南只说“您需要做的就是包含。这将获得您需要的所有包含”。显然还有更多。

在构建时,第一个错误是“无法找到头文件“glib-object.h”。本质上,vips/vips 调用 glib-objects “include,它位于 include \include\glib-2.0\glib-objects 的子文件夹中。 H。我搜索了一种让 VS 搜索主包含文件夹中的所有子文件夹的方法,似乎在 VS 中这种“递归搜索”是不可能的。必须准确指向包含头文件的文件夹,我可能需要手动添加所有子文件夹。所以我尝试将 vips-dev-7.34.1\include\glib-2.0 添加到 VC++ 目录->包含目录。但随后 glib-objects.h 调用了另一个 glibconfig.h,在包含文件夹和子文件夹中找不到该文件。

有人成功让 libvips 与 VS 一起工作吗?如果我错过了什么,你能给我一些建议吗?

0 投票
1 回答
914 浏览

ruby - Ruby-vips > 将 PDF 转换为 JPEG

我一直在查看 Vips 和 Ruby-Vips 文档,但无论如何我都没有看到加载和转换 PDF。Imagemagick 在他们的 CLI 工具中有 convert 命令。是否有相当于在 Vips 中转换的功能?我的目标是在我的 Rails 3 应用程序中将 PDF 转换为 jpeg。

0 投票
1 回答
679 浏览

ruby - Ruby-vips getting EXIF orientation

I'm attempting to get image EXIF data from the ruby-vips gem but I keep receiving errors. I've found documentation from others who have attempted to repair this issue and I've attempted their fixes with no success.

Both give errors:

Ubuntu version 13.10

Vips version 7.28.5

ruby-vips 0.3.7

Edit

0 投票
1 回答
728 浏览

html - 自动居中缩放图像

在编程方面我是新手,我希望你们都可以帮助我。我正在尝试自动将通过 VIPS 创建的 Zoomify 图像居中。

不幸的是,我很难找到如何使图像居中。如果我使用 openlayers 中的示例。org http://openlayers.org/en/v3.3.0/examples/zoomify.js 我最终以一种奇怪的方式居中。

有什么我做错了,或者我可以根据不同的图像尺寸自动居中图像和缩放吗?

这是我正在使用的代码片段和有趣的中心,使其可以通过一半(但不可靠:中心:[-20000000,20000000])

0 投票
1 回答
410 浏览

ruby - 无法安装 ruby​​-vips,“没有 pkg​​_config libvips”

我正在运行 Elementary OS,我刚刚使用 apt-get 安装了 libvips-dev。当我运行“gem install ruby​​-vips -v '0.3.9'”时,我收到此错误:

根据我的简单知识,这可能意味着 gem 找不到 libvips-dev 的安装(我知道它是必需的。)这个错误是什么意思,我该如何安装这个库?

0 投票
1 回答
2255 浏览

python - 从平铺的 TIFF 中提取图块并存储在 numpy 数组中

我的总体目标是将输入 mirax (.mrxs) 幻灯片图像中的几个区域裁剪为 JPEG 输出文件。

以下是其中一张图片的样子:

在此处输入图像描述

请注意,较深的灰色区域是图像的一部分,我最终希望以 JPEG 格式提取的区域是 3 个黑色方形区域。

现在,关于细节:

我可以在命令行上使用 vips 将 mirax 图像中的颜色通道提取到 3 个单独的 TIFF 文件中:

其中C对应通道号(0-2),每个输出文件大小约为250MB。

下一个工作是从图像中以某种方式识别和提取感兴趣的区域,所以我求助于几个 python 成像库,这就是我遇到困难的地方。

当我尝试使用 OpenCV 加载任何 TIFF 时:

我收到一个错误error: (-211) The total matrix size does not fit to "size_t" type in function setSize

通过执行以下操作,我设法通过 Pillow 获得了更多牵引力:

输出:

但是,除了加载图像之外,我似乎无法执行任何有用的操作;例如,这样做tiff.tostring()会导致MemoryError(我这样做是为了将 PIL 对象转换为 numpy 数组)我不确定这个操作是否有效,因为存在瓷砖。

根据我有限的理解,这些 TIFF 以 JPEG 压缩格式将图像数据存储在“图块”(上面的图像包含 636633)中。

但是,我不清楚如何提取这些图块以用作常规 JPEG 图像,甚至我概述的上述过程中的步骤顺序是否是实现从mirax 图像。

如果我走在正确的轨道上,那么将不胜感激,或者,如果有另一种方法可以在没有 python 的情况下使用 vips/openslide 来实现我的目标,我会很想听听想法。此外,有关如何处理或理解我描述的 TIFF 文件的更多信息也会有所帮助。

理想的情况包括:

1) vips/openslide 中的某种自动裁剪功能,它可以从 TIFF 或原始 mirax 图像生成 JPEG,按照以下命令的作用,但不会生成数万张图像:

2)能够从 TIFF 中提取图块并将与图像区域对应的数据存储为 numpy 数组,以便使用 OpenCV 或其他方法检测 3 个 ROI。

0 投票
1 回答
1241 浏览

imagemagick - C ++ TIFF(原始)到JPEG:比ImageMagick更快?

我需要每秒将许多 TIFF 图像转换为 JPEG。目前我正在使用 libmagick++ (Q16)。我正在编译ImageMagick Q8,因为我读到它可能会提高性能(特别是因为我只使用 8 位图像)。

CImg看起来也是一个不错的选择,GraphicsMagick声称比 ImageMagic 更快。我还没有测试过其中任何一个,但我想知道是否有任何其他替代方法可以比使用 ImageMagick Q8 更快?

我正在寻找仅适用于 Linux 的解决方案。

更新宽度 GraphicsMagick & ImageMagick Q8

基础比较(见 Mark 的评论):ImageMagick Q16 0.2 秒

我用 Q8 成功编译了 GraphicsMagick,但毕竟它似乎比 ImageMagick 慢了大约 30%(0.3 秒)。

使用 Q8 编译 ImageMagick 后,增益约为 25%(0.15 秒)。好的 :)

更新宽度 VIPS

感谢 Mark 的帖子,我尝试了一下VIPS。使用 Ubuntu Trusty 存储库中的 7.38 版本:

非常好 :)

我也尝试了 7.42(来自 ppa:dhor/myway),但它似乎有点慢:

我将尝试从源代码编译 VIPS,看看我是否能打败那个时间。干得好马克!

更新:使用 VIPS 8.0

从源代码编译,vips-8.0 的性能几乎与 7.38 相同:

配置命令:

0 投票
1 回答
1856 浏览

node.js - 使用 node sharp (libvips) 附加图像

我想使用 VIPS 将许多较小图像的目录附加到一个大图像中。节点模块“sharp”使用 libvips。有没有办法使用Sharp将2张图像附加在一起?VIPS 有一个“LRJOIN”功能,但我没有看到它的清晰实现。

我真的只是想知道让 VIPS 将图像目录附加到一个大 TIFF 的最快方法。由于内存问题,图像太大而无法使用 ImageMagick 等。

编辑:

我使用 ruby​​-vips 加入图像并调用 VIPS 命令行工具生成 DZI。

我在一个 ruby​​-sharp github 问题上找到了代码并对其进行了一些修改。550 个 4096x256 图像的结果(只是连接部分):