【问题标题】:loading with simple opengl image library(SOIL) an image(color space: GRAY)使用简单的opengl图像库(SOIL)加载图像(颜色空间:灰色)
【发布时间】:2017-03-05 09:34:46
【问题描述】:

我想读出灰度图像的像素值。使用 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,每次运行程序时高度都在变化。

在处理灰度图像时,我有什么需要改变或考虑的吗?

【问题讨论】:

  • 语言是 c++。我添加了一个标签

标签: c++ image png soil


【解决方案1】:

你应该把第三个参数从'0'改为'&channel',像这样

unsigned char *image = SOIL_load_image(filepath.c_str(), &width, &height, &channel, SOIL_LOAD_L);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多