我该如何处理图像?

时间:2011-10-06 18:36:38

标签: c++ bitmap jpeg

我正在构建一个程序,将图像文件(无论哪种文件类型最简单)转换为G-Code,以便在带有笔式绘图仪附件的rep-rap上使用。

我想知道我是否想逐像素地处理图像并检查像素颜色之类的东西,我怎么能用C ++做到这一点?

我真的很想知道如何逐像素地处理位图图像以检查像素的颜色。

4 个答案:

答案 0 :(得分:0)

最好的方法是使用库,例如​​Magick++

加载图片时,您可以使用Blob

访问其像素数据

答案 1 :(得分:0)

您可能希望使用已经过测试的现有库。

但是对于娱乐/练习/等,这将是一个很好的练习并且不可能做到。与其他图像格式相比,Bitmap Format(相对)简单。维基百科页面包含大量信息,包括一些C ++代码。看起来,一旦你超过了标题信息,你就会得到一个难以解析的像素数组。

祝你好运。

答案 2 :(得分:0)

大多数图像格式由标题和实际原始图像数据组成。 bimpap图像也不例外。如果您不想使用其中一个现有库,或者您不被允许,您应该阅读有关位图格式的信息:

http://en.wikipedia.org/wiki/BMP_file_format

一旦你理解了这一点,就可以创建适当的结构/类来存储你想要的信息,如x,y size,bpp等。还有一个指向原始图像数据的指针。然后你可以简单地遍历每个像素并随意做任何事情:)

答案 3 :(得分:0)

解密图像文件后,我建议您将像素放入矩阵中,以便第一次通过。 (未来的修订可以使用其他方法来访问像素)。

您可以使用矩阵乘法将变换应用于像素。您还可以使用数组索引单独访问像素。

在网上搜索SO以获取“图形c ++简介”。