问题标签 [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 回答
121 浏览

c++ - boost::gil 是否支持 10 位图像?

我正在尝试从缓冲区中读取 10 位图像并使用 boost::gil 对其进行分析。我注意到存在 rgb8_image_t 类型, gray8_image_t 类型,但找不到 gray10_image_t 类型(这是我需要的)。这在gil中存在吗?谢谢!

编辑:使用这些类型定义时:

编译时出现以下错误:

有谁知道如何解决这些问题?谢谢。

0 投票
0 回答
268 浏览

c++ - 尝试使用 Boost gil 读取图像时出错

我正在尝试遵循 boost gil 教程-此处的官方文档

但是我在尝试阅读图像时偶然发现了一些奇怪的错误,我真的不知道这些是什么意思。有什么想法吗?

我的代码:

这是我得到的错误(虽然有点长):

0 投票
1 回答
580 浏览

c++ - 如何使用 GIL 迭代器设置像素

尝试学习一点 C++,我对此很陌生。我的学习项目是使用各种算法(如分形)生成图像。我正在查看 boost GIL 库,因为 boost 似乎是最常见和最成熟的 C++ 库。所以,我试图在内存中创建一个图像,迭代像素并根据一些公式设置 RGB 值。我当前的代码看起来像这样

迭代似乎有效,但我似乎无法从 GIL 文档中弄清楚如何在这个循环中实际设置像素。我可以做一个嵌套的 for 循环,只使用 x 和 y 坐标设置像素,但我有点想使用迭代器,因为它看起来更整洁,也许我以后可以重构它以使用 transform()。我该如何从这里开始?如何将像素设置为某个 RGB 值?

0 投票
0 回答
108 浏览

c++ - C++ - 加载图像的 Base64 编码字符串以提升 GIL 图像/视图

我正在使用 Boosts 通用图像库。我得到了一个图像的字符串表示。解码后,我可以直接用该数据制作一个 Image 或 View 对象吗?还是我需要将数据作为 example.png 写入计算机并使用 GIL 的 read_image 函数?文档提到了动态图像,但仍将文件名作为 i/o 函数的参数。

理想情况下,我会寻找一个将字符串或字节数组作为参数而不是从磁盘加载的图像名称的函数。像 GDI+ FromStream 之类的东西。我看到文档说“所有函数都将文件名或设备作为第一个参数。设备可以是 FILE*、std::ifstream 和 TIFF*。” 也许可以编辑 ifstream 的内容以获得图像数据,但不确定这是否真的可行。

0 投票
1 回答
94 浏览

c++ - C++ - 是否可以在 ifstream 中编辑数据?

我正在尝试使用 Boost-GIL 加载图像。read_image 函数将 ifstream 作为参数,但我已经将图像作为 base64 编码字符串。我是否可以手动将解码后的图像添加到 ifstream 中,这样我就不必从磁盘写入和读取来将图像加载到 GIL 中?另一种可能性可能是以某种方式使用字符串流来添加数据并将其转换为 ifstream,尽管我没有运气尝试过。

0 投票
1 回答
332 浏览

c++ - 使用 boost::gil 编写 jpeg 文件

我正在尝试读取 jpeg 文件,进行一些简单的转换并使用 boost::gil 库将其写出来。现在我被卡住了,甚至读取一个文件,提取非白点(它只包含红点和白点)并将它们写入另一个文件会产生完全意想不到的结果。我希望图片是相同的,但这就是发生的事情:

这是输入图片。 原图

这是输出图片: 在此处输入图像描述

这就是我阅读非白色坐标的方式:

这就是写相同点的方式

为了完整起见,这是 is_white 检查:

任何想法我做错了什么?

谢谢

0 投票
1 回答
212 浏览

boost - 如何使用 Boost::GIL 从 python 字节字符串中读取图像信息?

我编写了一个从文件头读取图像宽度和高度的函数

而且我不知道如何从 python 字节中读取图像信息 从 Blender API 获取的图像数据,它与图像文件中的写入相同。

0 投票
1 回答
233 浏览

c++ - 如何使用 Boost::GIL 垂直翻转图像

我正在尝试生成图像图标。基于一些限制,我需要按{r, g, b, a, r1, g1, b1, a1, ...}的顺序得到一个int32_t像素值的一维数组。在这种情况下,行的顺序应该与 OpenGL UV 相同(从下到上)。为此,我使用了以下,经过验证,它的工作原理:

根据 GIL 中像素的存储顺序,我需要沿 y 轴翻转图像。请告诉我如何实现这个?

在此处输入图像描述

0 投票
0 回答
74 浏览

c++ - Boost GIL write_view 抛出 LNK2019 错误

我想学习如何使用 Boost GIL 加载、写入、... *.png 图像。
(我的编程环境是VS 2019)

问题是 GIL 在保存/加载文件方面存在问题。
它引发了许多LNK2019 错误

我的代码是:


这是错误之一(此处的所有错误):

0 投票
1 回答
127 浏览

c++ - 将 GIL image_view 直接转换为 OpenCV Mat

我从模拟器中以 a 的形式获取图像流,gil::image_view需要将它们转换为以cv::Mat进行进一步处理。到目前为止,我或多或少地从这个答案中复制了代码,但并没有真正理解它:

我确定没有使用alpha通道,所以我还可以定义另一个image_view:

对于这种情况,使用复制像素boost::gil::copy_pixels(...)是有意义的,因为无法在恒定时间内将交错的 rgba8 转换为 rgb8。

鉴于应用程序的性质,我很确定图像已经在内存中的某个地方。因此,从技术上讲,我可以只使用指向第一个元素的指针来创建我的 OpenCV 图像,而代价是使用额外的通道。