【问题标题】:C++ CImg create image from arrayC++ CImg 从数组创建图像
【发布时间】:2020-03-14 18:27:23
【问题描述】:

我在 C++ 中有三个二维数组(每种颜色 RGB 一个),其中存储的值代表颜色值。我想从中重建一个图像,我想知道最好的方法是什么,因为到目前为止我的尝试都没有奏效。

问题 1:几乎没有任何相关内容,至少我的谷歌搜索对该主题的结果为零:(

问题 2:CImg 中的 operator()、.data() 和 .fill() 函数由于某种原因对我不起作用。我在这里有一篇关于这个的公开帖子:

CImg funtions problem

但是,我不想只关注我在另一篇文章中描述的这个非常特殊的错误,而是想在这里询问一个合适的编码人员会如何处理这项任务。您可能会以完全不同的方式解决任务吗?谷歌上对我的其他问题缺乏关注至少让我觉得这个问题有一半是合理的,因此,我想打开这个关于它的线程,而不是让其他问题脱离主题。

我事先阅读了行为准则,据我了解,这是处理此类情况并避免偏离主题的方法 - 但是,如果我有误解,请多多包涵并告诉我 -我在这里比较新。

感谢您的考虑。

【问题讨论】:

  • 最容易编程的解决方案是遍历图像中的每个像素并将颜色应用于它们。 cimg.eu/reference/group__cimg__loops.html这个页面应该有帮助
  • 谢谢!我让它工作(见其他帖子 - 一个论点是错误的,计数不是从 0 开始的)并且我尝试过的所有运算符(并且在你提供的网站上列出)似乎都有效。干杯!
  • 没问题 :) 很高兴它有帮助
  • @steak_Overcooked 如果您想创建一个正确的答案,您可以。当然,仅链接不是一个正确的答案,但如果您想围绕它添加更多上下文并解释解决方案,以便它可以帮助其他人,请随时这样做。

标签: c++ image multidimensional-array cimg


【解决方案1】:

不确定是否有更明智的方法,但您可以使用这样的方法(未经测试):

CImg<> R,G,B, combined;
combined.draw_image(0,0,0,0,R);
combined.draw_image(0,0,0,1,G);
combined.draw_image(0,0,0,2,B);

【讨论】:

  • 我不确定如何使您的示例工作 - 但是,只要我不设置 z=,operator() 或 .data() 的循环(参见其他帖子)就可以工作0 在图像创建和这种逻辑下,大多数 CImg 功能突然似乎起作用了。不过感谢您的考虑!
猜你喜欢
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多