【发布时间】:2015-06-22 21:09:32
【问题描述】:
我需要将 .bmp 灰度图像读入二维矩阵。矩阵上的值 (int) 将是图像上相应的灰度级别(从 0 到 255)。
更具体地说,假设我有一个 4x4 像素的 8 位灰度图像。
我想将其转换为二维矩阵,其值将是灰度级别,例如:
|0......2......4.......5 |
|10....11....12....10|
|210..200..150..98|
|1.....10....50.....88|
到目前为止,我已经设法将灰度图像导入 3 矩阵 (RGB),但是当我尝试使用转换因子将其转换为单个矩阵(灰度)时,它不起作用。图像与原始图像不同。
我正在使用的转换函数是: ...
for (int i = 0; i < l; i++)
for (int j = 0; j < c; j++)
{
b[i][j] = (int)(0.11*b[i][j] + 0.59*g[i][j] + 0.3*r[i][j]);
g[i][j] = b[i][j];
r[i][j] = g [i][j];
}
}
【问题讨论】:
-
就个人而言,我不会为 80 年代一些荒谬、神秘、不合逻辑的 Microsoft 格式而烦恼。我会使用 ImageMagick 将其转换为 PGM 文件(便携式灰色地图),您将能够在大约 3 行 C 中读取该文件。转换命令是
convert image.bmp image.pgm更多信息:en.wikipedia.org/wiki/Netpbm_format
标签: c image-processing matrix bmp grayscale