2011-10-06 60 views
0

我正在构建一个程序,将图像文件(无论文件类型是否最简单)转换为G代码,以便在带有笔式绘图仪附件的rep-rap上使用。如何处理图像?

我想知道如果我想像素处理像素和检查像素颜色的东西,我怎么可以用C++做到这一点?

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

回答

0

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

当您加载图像,你可以访问它的像素数据与Blob

0

你可能会想使用已通过测试现有的库。

但是对于娱乐/练习等,这将是一个很好的练习,并不是不可能的。与其他图像格式相比,Bitmap Format(相对)简单。维基百科页面包含一些信息,包括一些C++代码。它看起来像一旦你已经越过头部信息,你得到一个像素数组,应该不难解析。

祝你好运。

0

大多数图像格式由标题和实际原始图像数据组成。一个bimpap图像也不例外。如果你不希望使用现有的图书馆之一,或者如果你不能,你应该阅读有关位图格式:

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

一旦你明白这一点,你可以建立适当的结构/班存储你想要的头信息,如x,y尺寸,bpp等。还有一个指向原始图像数据的指针。然后,你可以简单地遍历每一个像素,并做任何你想要的东西:)

0

一旦你破译了图像文件,我建议你将像素放入矩阵,第一遍。 (未来的修订版可以使用其他方法来访问像素)。

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

在Web和SO上搜索“图形C++介绍”。