0

我写了以下结构。

struct RGB
{
     unsigned short Red; 
     unsigned short Green;
     unsigned short Blue;
};

struct ImageBase
{
     std::string name;
     RGB array[64][64];
};

我有一个文件“Image.png”。如何读取文件(将 RGB 值打印到屏幕或文件)?

4

1 回答 1

0

您可以使用 gil 作为 boost 的一部分来读取图像:

using namespace boost::gil;
rgb8_image_t input;
png_read_and_convert_image(ipath, input);

然后,您将在图像上创建一个视图以访问像素,并遍历像素以将它们写入标准输出:

rgb8_view_t src_view = view(input);

for (int y=0; y < src_view.height(); ++y) {

    rgb8_view_t::x_iterator src_it = src_view.row_begin(y);

    for (int x=0; x < src_view.width(); ++x)
        std::cout << "R=" << src_it[x][0] << " G=" << src_it[x][1] << " B=" << src_it[x][2] << std::endl;
}

gil 的文档在这里: http: //www.boost.org/doc/libs/1_51_0/libs/gil/doc/index.html

于 2012-09-27T16:18:39.250 回答