【问题标题】:Reading an image into an matrix of pixels in C++在 C++ 中将图像读入像素矩阵
【发布时间】:2011-11-15 08:30:25
【问题描述】:

我已经用OleLoadPictre 将图像读入LPPICTURE 并将其显示在窗口中,但我真正需要做的是将图像转换为像素矩阵,我可以对其进行操作并保存回图片文件。

使用OleLoadPicture,我几乎可以读取所有主要图像格式。如果我可以访问单个像素,我可以循环并提取它们。

在其他相关问题中,人们建议使用 OpenCV 等庞大的库和其他高度开发的库,这些库可以在阳光下做所有事情,但我更愿意让我的解决方案尽可能简单。我已经为我的像素编写了一个基本结构,我很高兴自己进行操作。

我一直在使用 Magic++ 查看 ImageMagic 库。看起来相当不错,但如果有一个解决方案只使用 Windows API 来提取像素并将图像保存回任意图像格式,那么我认为这将是最好/最轻的。

【问题讨论】:

    标签: c++ windows image winapi image-processing


    【解决方案1】:

    OleLoadPicture 为您提供IPicture 的实例。使用IPicture::get_Handle 获取IPicture 实例持有的HBITMAP。最后使用GetDIBits获取像素数据。

    有用于执行此操作的示例代码here。将其从 MFC 转换为普通的 WinAPI 应该会得到您的像素数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-12
      相关资源
      最近更新 更多