问题标签 [cimg]

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 回答
196 浏览

c - 如何使用 CImg 调整屏幕中的所有点

我必须绘制具有更大双精度值的线条,例如 (3000.00,4500.45)。

但我想让我的屏幕尺寸限制在 800x800

我想在800以内取点坐标的模数 Like

3000.00%800=600

我的 Screen 可以容纳 600 个。但问题是,CPP 不支持双值模数。

如何使用 CImg 在我的屏幕中放置这些大点?

0 投票
0 回答
1157 浏览

c++ - CImg 加载图像失败,路径名中有空格

我有一个 C++ 应用程序,我正在开发它来扫描图像并返回坐标,整个应用程序按预期工作,除了我似乎无法弄清楚的最后一个问题。用户将图像上传到文件夹,然后图像一次运行一个到队列中的应用程序。问题是,我们有成千上万的用户拥有许多文件夹,并且这些用户中的大量用户在文件夹/文件名中上传带有空格(例如:“”)的文件夹/文件。

当应用程序运行它崩溃时,我将其范围缩小到 CImg 不喜欢路径中的空格这一事实。

每次它在我的本地机器上运行时,路径中有一个空格,我都会收到以下错误,这似乎没什么好说的。

jpeg-info.exe 中 0x00BE05F7 处的未处理异常:0xC00000FD:堆栈溢出 >(参数:0x00000000、0x00242000)。

[CImg] * CImgIOException * [instance(0,0,0,0,00000000,non-shared)] CImg::load(): 无法打开文件'J:\uploads\41039\test name'

[CImg] * CImgIOException * cimg::fopen(): 无法使用模式“rb”打开文件“J:\uploads\41039\test name”。

它失败的代码行在这里。

我只需要想办法将路径传递给 CImg 并在字符串中使用空格并且它不会中断。

旁注:我确实安装了 boost 文件系统,如果这样可以更容易地找出这个解决方案。

编辑:

我以两种不同的方式获取文件名,但无法解决此问题..

原始方式:(直接传递 const char )

新方法:(抓取路径并使用 boost 正确格式化)

0 投票
1 回答
1312 浏览

cimg - CImg如何从给定的x,y坐标绘制多边形?

我正在尝试从 5 个点绘制一个封闭的多边形,我正在尝试使用以下代码:

我试图按 ccw 顺序给出点,但是我没有得到预期的多边形。预期的 我得到的是这样的:成立

我该怎么做才能按预期生成多边形?如何将积分作为输入?ccw 或 cw 顺序或任意顺序?

0 投票
1 回答
560 浏览

c++ - 如何从左下角而不是左上角开始 CImg 绘图?

在 CImg 中,坐标系被认为是从左上角开始的。但是,我通常习惯于从左下角开始查看坐标系。因此,每当我尝试用坐标 (10,100),(50,50),(100,100) 绘制一个三角形时,我都会将图形颠倒过来。有什么可以翻转这个吗?预期是我要这个

发现是但我发现了这个

0 投票
4 回答
1468 浏览

c++ - 如何将已存储在固定内存中的值分配给 cimg 对象

我正在使用 Cimg 库进行图像处理工作。我有一个由 GPU 返回的数组的指针,我希望 Cimg 对象直接取数组的值。现在,我正在使用 for 循环来完成这项工作,但效率不高。

我现在使用的示例代码如下:

我厌倦了这段代码,但它不起作用:

任何人都可以帮助我消除 for 循环并提高速度吗?谢谢大家。

0 投票
1 回答
111 浏览

c++ - CIMG 图像替换

我有一个小问题。我需要使用一些图像,但我不想为每个图像声明新的“图像”。我将图像声明为:CImg image("1.bmp"); 之后,我想为其他图片签名,例如 2.bmp。不确定,如果我解释得很好......我想在下面做同样的事情,但在图像上:int a =1; a=2;

我正在查看 lib 文档,但找不到任何东西。不幸的是,image=image("2.bmp") 不起作用。有什么办法可以解决我的问题吗?我真的不想声明 image1、image2、image3 等等。

0 投票
0 回答
880 浏览

c++ - eclipse显示错误但在外部makefile时编译

我有一些使用 CImg 和 Eigen 库的 c++ 代码。在 c++ 代码中,我定义了一个这样的插件

该插件包含许多在 c++ 代码中使用的方法定义。

我还有一个 makefile,当从命令行 (./make) 调用时,它允许我编译所有内容并生成可执行文件。

我想将此代码导入一个新的 Eclipse 项目,我这样做:

  • 新建>项目>C++ 项目>makefile 项目>空项目
  • 取消标记“使用默认位置”,然后在文件系统中选择包含我的代码的文件夹
  • 项目>属性>C/C++ 构建>取消标记“使用默认构建命令”并将其设置为使用我的 makefile
  • 同样在项目属性>C/C++ 常规>路径和符号>添加路径到包含 Eigen 和 CImg 的文件夹
  • 重建索引
  • 清洁项目
  • 重启日食

当我构建项目时,eclipse 告诉我“my_plugin.h”中有超过 1000 个错误,但它能够生成可执行文件。尽管如此,我想摆脱这个错误,因为它们很烦人。另外,如果我想打开插件中使用的 CImg 方法的声明,我不能。

我知道以前有人问过这个问题,但是我发现的任何解决方案都让我满意(其中大多数都在前面的列表中列出)。我访问的来源如下,如果您找到并告诉我其他我没有看到的信息,我会非常高兴。

Eclipse显示错误但项目编译正常 eclipse C项目显示错误(符号无法解析)但编译 Eclipse CDT显示一些错误,但项目成功构建 http://www.eclipse.org/forums/index.php/电话/247954/

0 投票
1 回答
436 浏览

c++ - 将图像放置在较大图像的某个位置

我有一个从这样的文件加载的图像:

我想将 image_small 中的确切图像复制粘贴到 image_big,但要指定执行位置(坐标)。

我查看了library中的函数,但我只找到assign()or get_shared(),它不接受此选项。

0 投票
1 回答
654 浏览

c++ - 访问像素值而不将图像加载到内存中以获取大图像

我需要使用 CImg 库计算图像的平均值,如下所示:

我知道这样img.mean()可以解决问题,但是在这里我想以低级别的方式进行。

当图像的大小增加太多时,我的代码中的第 3 行会消耗我计算机的太多资源,因为根据文档,它同时将所有图像像素存储在内存缓冲区中。

我想到了一个更低级别的解决方案,使用系统调用open()read()如下所示:

但是现在得到的结果没有任何意义。我想知道这个解决方案是否有任何意义,如果图像以与在内存中加载时相同的方式存储在磁盘上,以及最终这个解决方案是否会节省时间和内存。

0 投票
0 回答
406 浏览

c++ - 使用 CImg 逐像素加载图像时出现分段错误

我试图通过逐像素加载来计算图像的平均值。我的图像有 6 个通道,高度为 512,深度为 1。它存储在包含 2 个元素的 ImgList 的第一个位置。

我的代码如下:

当我运行它时,一切正常,直到“c”的值从 0 变为 1。然后,行访问img(0)(0,0,0,0)使程序崩溃并出现分段错误错误。

另外,如果我检查:

结果是:

我非常确定代码的正确性和图像的完整性(我尝试过不同的)。知道为什么会这样吗?