问题标签 [boost-gil]

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 投票
1 回答
2139 浏览

c++ - 使用 BOOST::GIL 将 CYMK 图像转换为 RGB

我正在尝试使用 boost 通用图像库将 CYMK 图像转换为 RGB。

以下代码无法编译

有人知道怎么修这个东西吗?

我将此代码基于教程代码

这是编译器输出:

0 投票
2 回答
1094 浏览

c# - 通用图像处理库的 C# 设计指南

在任何图像处理库中,总是存在必须为每种图像格式(颜色空间、通道、位深度、内存布局等)提供每种算法的实现的问题。该问题的一个非常优雅的解决方案是 Boost GIL。通过 C++ 的强大功能和出色的设计,所有这些问题都被抽象出来,您可以编写一个适用于任何类型图像的算法。

我想在 C# 中创建类似的东西,但是缺少许多必要的构造,例如模板和某些运算符重载(如一元 *)。我愿意接受我能创造的东西不会像 GIL 那样健壮和优雅,但我想尽可能地对这些概念进行建模。最终,抽象图像差异和编写通用处理算法将是目标。

有了 C#、泛型、lambdas,甚至动态 IL /cringe 中可用的内容,人们认为设计库的一些可能方法是什么?

0 投票
1 回答
2419 浏览

boost - 如何使 Boost::GIL 与 PNG 和 JPEG IO 一起使用?

Boost::GIL 有几乎完美的教程和手册。我发现缺乏关于构建和使用 Boost::GIL 与 PNG 和 JPEG IO 配合使用的指南很麻烦。有没有人有经验或成功做到这一点?请多多指教!谢谢!

编辑:

答案在这里:http: //opensource.adobe.com/wiki/display/gil/Downloads

0 投票
2 回答
5879 浏览

macos - LibPNG + Boost::GIL: 未找到 png_infopp_NULL

尝试使用 Boost::GIL PNG IO 支持编译我的文件时,我总是收到此错误:

(我正在运行 Mac OS X Leopard 和 Boost 1.42,LibPNG 1.4)

0 投票
1 回答
366 浏览

c++ - 如何从 boost::gil 同质像素类型中提取通道 POD 类型?

我有一个以 为模板的类<PIXEL>,假定是boost::gil的像素类型之一(目前,只有一个gray8_pixel_tgray16_pixel_t,并且我只希望支持同质像素类型rgb8_pixel_t,例如将来)。

该类需要掌握unsigned charunsigned short适合像素类型;我认为这被埋在像素类中,但没有一个PIXEL::value_typePIXEL::channel_type或者PIXEL::channel_type::value type似乎是我想要的。

有什么诀窍?

(我当然可以通过一些模板专用的辅助结构使用类型间接来获取此信息:

但如果我能找到它,GIL 肯定已经提供了等价的东西......)

0 投票
1 回答
2011 浏览

c++ - 提升 GIL 图像构造函数

我目前正在尝试弄清楚如何使用 Boost 中包含的通用图像库。现在,我只想使用该库来存储像素数据并使用 Image IO 来编写 PNG。但是,我无法理解如何设置对象。

hpp 说

但除了 view_t::point_t 到 point_t 的 type_def 之外,我找不到对 point_t 的任何引用。

此外,与 GIL 一起找到的教程似乎只包括编写过滤器和通用算法,因此它们提供的每个函数示例都有一个源图像视图,它们从中获取尺寸。

我会以错误的方式解决这个问题吗?还是我完全错过了什么?

提前致谢

编辑:我不知道是否有人关心或读过这个,但为了记录,我只是使用 boost interleaved image 函数来创建一个 PNG。这不是完全相同的解决方案,但它适用于我的应用程序。

0 投票
1 回答
2123 浏览

c++ - boost::gil Interleaved_view

我在弄清楚 boost 图像库时遇到了一些麻烦。

我找不到任何关于如何使用 boost::gil 库中包含的 interleaved_view 函数的确切文档。更具体地说,我不知道原始数据应该以什么二进制格式存储。

我能找到的唯一提及它是在 gil 教程中:

此外,函数原型说

我的问题是,gil 在二进制格式中所期望的格式到底是什么,而 rowsize_in_bytes 应该是什么?

我之前唯一一次看到交错图像是在使用 OpenGL 时,它只是每个像素相邻存储的 RGB 信息。我认为 rowsize_in_bytes 只是字面上一行像素的大小(以字节为单位),所以我尝试用这个写一个 PNG:

并且输入 src 是一个大小为 w*h 的平面数组,格式为

图像只是黑色背景上的一个白色盒子。然而,我得到的结果相当……奇怪

结果

如果有人知道为什么会发生这种情况,以及 interleaved_view 的实际工作原理,那就太好了。提前致谢!

编辑:对不起,我刚刚意识到我的愚蠢错误。我现在开始工作了... :( 问题不在于图像的格式,而在于它是行专业的,而不是列专业的

0 投票
3 回答
2874 浏览

c++ - 我应该使用 Boost.GIL 还是它已经死了?

我实际上喜欢 Boost.GIL 的简洁方法,标准化库很酷,Adobe 肯定在其中考虑了一些想法,但与 OpenCV 等库相比,它的功能集是微不足道的。你使用 GIL 以及用于什么目的?

0 投票
1 回答
934 浏览

c++ - 使用 boost::gil::color_converted_view 和 boost::gil::for_each_pixel

我意识到写入gil::color_converted_view不会影响底层视图的数据。我想知道这是否正确?

例如,假设我想编写一个程序,将红色通道的值设置为蓝色通道的一半。这是我失败的尝试:

但是,它仅在SrcView实际为 时才有效gil::rgb8_view_t。如果我打电话,例如half_red_to_blue<gil::bgr8_view_t>(view),视图根本不会改变!我在调试器中检查了一下,似乎写操作正在写入某种代理位置而不是原始像素。

有任何想法吗?提前致谢!

0 投票
2 回答
1561 浏览

image - Boost::GIL 从内存中读取图像

我需要能够从 Boost::Gil 框架的内存中加载图像(jpeg、png 等)。有没有办法做到这一点?

感谢您的回答!