【问题标题】:How to process jpg images with c/c++ most easily?如何最容易地用 c/c++ 处理 jpg 图像?
【发布时间】:2011-03-16 08:48:05
【问题描述】:

我想遍历jpg 格式图像中的每个像素颜色,

我应该参考哪个库来做到这一点,以便代码尽可能短?

【问题讨论】:

    标签: c++ c image-processing


    【解决方案1】:

    jpeglib 是一个非常方便的 jpeg 库。

    【讨论】:

      【解决方案2】:

      我可以想到ImageMagickCImg。这是给你的CImg tutorial。他们抽象了很多解压细节,只是给你一个可以使用的网格。

      如果你使用 CImg,你只需要使用data 调用。您可能可以执行以下操作:

      CImg<unsigned char> src("image.jpg");
      int width = src.width();
      int height = src.height();
      unsigned char* ptr = src.data(10,10); // get pointer to pixel @ 10,10
      unsigned char pixel = *ptr;
      

      【讨论】:

      • 如何获取宽高?
      • 我更改了示例以向您展示如何检索高度/宽度
      • ImageMagick 是一个命令行工具。如果您想构建一个独立的应用程序,请不要认为它适合。但是我不熟悉 CImg。
      • ttchong - ImageMagick 还提供了一组您可以链接的 API。查看 Magick++。我自己做了。
      • @SB - 从你这里知道。我会试试看的。
      【解决方案3】:

      用于访问像素级信息。 libjpeg 和 JAI Image I/O 工具应该足够了。 JAI 提供的高级图像处理框架不止于此。所有选项都允许您将像素读/写到图像文件。

      libjpeg 在 C/C++ 中。它适用于 Linux 和 Window。我之前在 Linux 中使用过它,它运行良好。但是,如果您想处理其他图像类型,您可能需要获取其他包并学习其他 API 接口。

      Java 高级成像 (JAI) 图像 I/O 工具 记得下载平台特定的java包,因为不同的系统有特定的优化。它不仅涵盖 JPG,还涵盖具有完全相同 API 接口的其他图像格式。

      Java 高级成像 (JAI) 如果您打算进行更高级的处理,例如使用图像运算符和过滤器,则可以使用它。这是一个提供比 JAI Image I/O Tools 更高级别功能的包。

      编辑:按照建议删除 1、2 和 3

      【讨论】:

      • 答案不会以任何固定顺序显示,因此将其他答案称为 #1、#2、#3 会造成混淆。总结答案(这里可能是框架名称)或命名回答者以识别其他答案是有帮助的。链接其他答案会更好。
      【解决方案4】:

      我会使用 Allegro 游戏库 http://liballeg.org/Allegro 它很简单/开源/免费/多平台,如果你愿意,你可以逐像素迭代

      【讨论】:

        【解决方案5】:

        Qt 有一个QImage 类:

        QImage i("input.jpg");
        int x, y;
        for (y = 0; &lt; i.height(); ++y) {
           for (x = 0; x &lt; i.width(); ++x) {
              doSomethingWith(i.pixel(x, y));
           }
        }
        

        【讨论】:

          【解决方案6】:

          试试FreeImage,它看起来很通用,很多项目都在使用它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-22
            • 2010-10-04
            • 2011-05-16
            相关资源
            最近更新 更多