转换为不同灰度级图像

将256级灰度图像转换为64级灰度图像、32级灰度图像等。
matlab代码:

I = imread('cameraman.tif');
[m,n]=size(I);
J=zeros(m,n);
for i=1:m
    for j=1:n
        J(i,j)=floor(I(i,j)/32);
    end
end
K=uint8(J);
subplot(131)
imshow(I);title('原图');colorbar
subplot(132)
imshow(K,[0,7]);title('8级灰度');colorbar
J=zeros(m,n);
for i=1:m
    for j=1:n
        J(i,j)=floor(I(i,j)/8);
    end
end
K=uint8(J);
subplot(133)
imshow(K,[0,31]);title('32级灰度');colorbar

效果:
这里写图片描述
注意:
使用imshow()显示不同灰度级时,要使用imshow(I,[low,high])格式,否则无法正确显示图片内容。对于uint8类型图像默认显示范围取【0,255】,对于double类型图像默认显示范围【0,1】
测试:

clear;
I=zeros(256,1);%构造0-255个灰度带的灰度渐变的方形图
for i=1:255
  J=floor(i.*ones(256,1));
  I=cat(2,I,J);
end
Iint=uint8(I);
subplot(131)
imshow(Iint);title('imshow默认灰度范围');colorbar
subplot(132)
imshow(Iint,[0,255]);title('imshow256级灰度范围');colorbar
subplot(133)
imshow(Iint,[0,127]);title('imshow128级灰度范围');colorbar

效果:
这里写图片描述
可以看到,
设置了灰度范围的图像,对于超出imshow规定范围的像素点,matlab将其设置为最高灰度值(对应颜色条的白色)。
imshow(I,[])表示自动选图像中min,max像素值为界限。等同于imshow(I,[min,max])

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值