matlab 对原始图像灰度级压缩,将Gray量化成16级 下面的这个代码是啥意思 有没有会matlab的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 对原始图像灰度级压缩,将Gray量化成16级 下面的这个代码是啥意思 有没有会matlab的相关的知识,希望对你有一定的参考价值。

为了减少计算量,对原始图像灰度级压缩,将Gray量化成16级

%--------------------------------------------------------------------------

for i = 1:M

for j = 1:N

for n = 1:256/16

if (n-1)*16<=Gray(i,j)&Gray(i,j)<=(n-1)*16+15 //主要是这一块这个&是表示并且的意思么

Gray(i,j) = n-1;

end

end

end

end

参考技术A 直接从灰度矩阵转换,转换到A级:
if isa(im_mat,'uint8')
im_mat = floor(im_mat/255*A-1);
end
本题,则为
if isa(im_mat,'uint8')
im_mat = floor(im_mat/255*15);
end
即可本回答被提问者和网友采纳

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 对原始图像灰度级压缩,将Gray量化成16级 下面的这个代码是啥意思 有没有会matlab的的主要内容,如果未能解决你的问题,请参考以下文章

如何用matlab减小图像的灰度级别

Matlab图像怎么处理?Matlab图像处理的基本操作

Sobel边缘检测-matlab

Sobel边缘检测-matlab

MATLAB中如何将一幅图像改为不同的亮度级?

matlab中如何求一个图像的灰度级