我想读出灰度图像的像素值。使用RGB图像我没有问题。代码很简单:
int width, height;
unsigned char* image = SOIL_load_image(filepath.c_str(), &width, &height, 0, SOIL_LOAD_RGB);
std::cout << "size of image : " << size << " width: " << width << " height: " << height << std::endl;
现在我想加载一个带有颜色空间GRAY的图像(png),我想我可以简单地将SOIL_LOAD_RGB更改为SOIL_LOAD_L,但这样做无法解决。
我在控制台上的输出是: 图像尺寸:-237407992宽度:10高度:-1312230988
并不是一成不变的。只有宽度保持为10,每次运行程序时高度都在变化。
使用灰度图像时,我是否需要更改或考虑?
答案 0 :(得分:0)
你应该将第三个参数从'0'更改为'&amp; channel',就像这个
一样unsigned char *image = SOIL_load_image(filepath.c_str(), &width, &height, &channel, SOIL_LOAD_L);