问题标签 [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.
ruby - Ruby-vips 图像处理库。有没有很好的使用例子?
我对图像处理完全陌生。我对内部 JPEG 是什么以及它是如何工作的一无所知。
我想知道,是否可以在某处找到执行以下简单操作的 ruby 代码:
- 打开jpeg文件。
- 遍历每个像素并将其颜色设置为 fx green。
- 将结果写入另一个文件。
我对如何使用 ruby-vips 库
https://github.com/ender672/ruby-vips实现这一点特别感兴趣
我的目标 - 学习如何使用 ruby-vips 执行基本的图像处理操作(伽玛校正、亮度、色调......)
任何比 ruby-vips 的 github 页面上的“hello world”更复杂的工作示例的链接都将受到高度赞赏!
如果有 ruby-vips 的替代品,我也会感谢他们。
更新
自从我问这个问题以来发生了很多事情:
- ruby-vips 是一颗宝石: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
- vips图像处理的基本概念:https ://github.com/jcupitt/ruby-vips/wiki/Basic-concepts
- ruby-vips 集成到 Ruby on Rails 的 CarrierWave 上传插件:https ://github.com/eltiare/carrierwave-vips
- ruby-vips 是 Rails6 中 ActiveStorage 的官方后端之一
ruby-on-rails - 使用带有 16 位 tiff 的 carriewave-vips
我正在使用carrierwave-vips(带有ruby-vips)上传和处理16位tiff。16 位 tiff 将得到保存(仅对于carrierewave 来说不是问题),但我也想处理缩略图(jpeg)。问题是生成的缩略图完全被炸毁了。我能做些什么?
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 一起工作吗?如果我错过了什么,你能给我一些建议吗?
ruby - Ruby-vips > 将 PDF 转换为 JPEG
我一直在查看 Vips 和 Ruby-Vips 文档,但无论如何我都没有看到加载和转换 PDF。Imagemagick 在他们的 CLI 工具中有 convert 命令。是否有相当于在 Vips 中转换的功能?我的目标是在我的 Rails 3 应用程序中将 PDF 转换为 jpeg。
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
html - 自动居中缩放图像
在编程方面我是新手,我希望你们都可以帮助我。我正在尝试自动将通过 VIPS 创建的 Zoomify 图像居中。
不幸的是,我很难找到如何使图像居中。如果我使用 openlayers 中的示例。org http://openlayers.org/en/v3.3.0/examples/zoomify.js 我最终以一种奇怪的方式居中。
有什么我做错了,或者我可以根据不同的图像尺寸自动居中图像和缩放吗?
这是我正在使用的代码片段和有趣的中心,使其可以通过一半(但不可靠:中心:[-20000000,20000000])
ruby - 无法安装 ruby-vips,“没有 pkg_config libvips”
我正在运行 Elementary OS,我刚刚使用 apt-get 安装了 libvips-dev。当我运行“gem install ruby-vips -v '0.3.9'”时,我收到此错误:
根据我的简单知识,这可能意味着 gem 找不到 libvips-dev 的安装(我知道它是必需的。)这个错误是什么意思,我该如何安装这个库?
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。
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 相同:
配置命令:
node.js - 使用 node sharp (libvips) 附加图像
我想使用 VIPS 将许多较小图像的目录附加到一个大图像中。节点模块“sharp”使用 libvips。有没有办法使用Sharp将2张图像附加在一起?VIPS 有一个“LRJOIN”功能,但我没有看到它的清晰实现。
我真的只是想知道让 VIPS 将图像目录附加到一个大 TIFF 的最快方法。由于内存问题,图像太大而无法使用 ImageMagick 等。
编辑:
我使用 ruby-vips 加入图像并调用 VIPS 命令行工具生成 DZI。
我在一个 ruby-sharp github 问题上找到了代码并对其进行了一些修改。550 个 4096x256 图像的结果(只是连接部分):