matlab怎么生成灰度图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab怎么生成灰度图像相关的知识,希望对你有一定的参考价值。

参考技术A 生成还是显示?生成:直接建一个二维数组,赋予0-255值就可以了。显示imagesc(img);colormap(gray)本回答被提问者采纳 参考技术B

clear;clc

x=linspace(-3*pi/2,pi/2,200);

y=repmat(255*(1+sin(x))/2,200,1);


I2=uint8(y);

I1=I2';

I3=uint8((y+y')/2);

subplot 131

subimage(I1);

subplot 132

subimage(I2);

subplot 133

subimage(I3);

matlab中怎么把图像变成灰度图

>> I=imread('D:\\Lena.jpg');

>> x=rgb2gray(I);

>> figure(1);

>> subplot(121);

>> imshow(I);

>> title('原始图像');

>> subplot(122);

>> imshow(x);

>> title('灰度图像'); 

彩色图像是RGB,直接用rgb2gray

MATLAB 并没有自带gray2rgb
灰度图像 是个 N x M 矩阵。 N 和 M 为坐标,存储的数值是灰度深浅强度。RGB 为 N x M x 3 的矩阵。N 和 M 为坐标,附带的 3 是 [红,绿,蓝] 三色,数值各取 0-1.0 之间。转换上,如果灰度图像为 1024 x 768 大小,则要建立一个 1024 x 768 x 3 的矩阵。再在每一像素上添上颜色。例如,rgb_image(2, 4, :)= [0 1 1] %(坐标(2,4)=浅蓝色)

为了进行并行处理。我将512*512 的矩阵分成了64*64 的独立小块,并存至对应的文件中。

for i=1:64:449

     for j=1:64:449

        y=x(i:i+63,j:j+63);

        h=y';

        a=(i-1)/64+1;

        b=(j-1)/64+1;

    

        sload=['fid=fopen(''x' num2str(a) num2str(b) '.txt'',''wt+'')'];

        eval_r(sload);       

     

                fprintf(fid, 'M\\t', h);

         

      fclose(fid);

        

    end

end

参考技术A bmp的图像是彩色的,也就是说有rgb三个波段,读出的图像数据是一个m*n*3的数组,如果想把它变成灰度图像的,只要分离出任意rgb中的一个分量即可,例如你的图像是1.bmp,
x=imread('1.bmp');imshow(x);
y=x(:,:,1);
imshow(y);就可以了,不知道你是想怎样把图像变成灰度的,如果三个分量都想要的话,做个计算也可以的,例如把rgb做个平均;y=1/3*x(:,:,1)+1/3*x(:,:,2)+1/3*x(:,:,3);imshow(y);

以上是关于matlab怎么生成灰度图像的主要内容,如果未能解决你的问题,请参考以下文章

matlab中如何将灰度图转化为二值黑白图像?敬请各位大侠指点!

matlab中怎么把图像变成灰度图

matlab怎么生成灰度图像

matlab 灰度图像矩阵的大小问题(入门级)

matlab图像转灰度图像

matlab中灰度图像矩阵的大小问题怎么操作?