我写了以下结构。
struct RGB
{
unsigned short Red;
unsigned short Green;
unsigned short Blue;
};
struct ImageBase
{
std::string name;
RGB array[64][64];
};
我有一个文件“Image.png”。如何读取文件(将 RGB 值打印到屏幕或文件)?
您可以使用 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