在matlab中将数组转换为灰度

时间:2013-04-20 09:57:36

标签: image matlab plot grayscale

我试图用灰度绘制一组数据。但是,我得到的图像似乎总是蓝色。

我有一组数据albedo,其范围为[0, 0.068],即1X1 double

我的代码是:

 for all px,py
    albedoMax = 0.0679; albedoMin = 0;
    out_im(px,py) = 1/(albedoMax-albedoMin)*(albedo - albedoMin);
    imshow(out_im);
    drawnow;
 end

基本上px,py是我必须迭代的图像坐标,公式正在尝试将[0, 0.068]的输入范围映射到[0 1]。但是,通过运行此代码,我注意到输出始终是蓝色的。我想知道出了什么问题。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

你不能使用rgb2gray函数吗?

答案 1 :(得分:0)

您正在制作的是RGB图像的一层。 如果要创建具有恒定颜色的均匀蓝色图像,则标准化是错误的。但如果仅仅是蓝色而不是灰色的问题,那么只需使用以下方法进行转换:

ImGray = rgb2gray(Im);

不要忘记像网格/网格那样分布像素,以填充所有图像而不仅仅是图像的一部分。