目的:(1)对一帧8bits 128x128的灰度图像处理为1bits和3bits的128x128灰度图像。
(2)处理为8bits 64x64和32x32的灰度图像。
一、基本原理
一幅图像的x和y坐标及幅度可能都是连续的。为了把它转换为数字形式,必须在坐标和幅度上都进行取样操作。数字化坐标值称为取样,数字化幅度值称为量化。1.1灰度级和空间分辨率(细微结构的分辨率)
单色图像在任何坐标(x0,y0)处的强度为图像在那一点的灰度级(l),即l=f(x0,y0)
l位于下列范围:
Lmin ≤ l ≤ Lmax、
区间[Lmin,Lmax]称为灰度级,常令该区间[0,L-1]。
数字化过程对于M,N值和每个像素允许的离散灰度级数L需要一个判定。对于M和N,除了必须取正整数外没有其他要求。然而,处于处理、存储和取样硬件的考虑,灰度级典型的取值是2的整数次幂,即
1.2降低图像空间分辨率
降低图像空间分辨率是从原图像中删去一样的行和列数完成的。例如,512x512图像是从1024x1024图像中每隔一行或一列删去一行或一列得到的。256x256图像是从512x512图像中每隔一行或一列删去一行或一列产生的,以此类推。其灰度级保持在256。
1.3灰度级数变换算法步骤
Step1.把0-255灰度值中小于127的值赋值为0,其他赋值为255,共2个灰度级,输出为1bit图像;Step2.把0-255灰度值均匀分成2^3=8份,即为8个灰度级,输出为3bit图像。
二、结果分析
可以看出,处理后的图像灰度级减少,灰度级变成2,变成灰度只有0和1的二值图。
可以看出,处理后的图像灰度级减少,灰度级变成23即8个灰度级,此时的图像严重压缩,比原始图像减少了很多信息。
由上图可知,处理后的图像复原到128*128大小,与原图相比,损失了较多细节,整个图像上显示出稍微明显的颗粒,这些颗粒在下图更加明显了。
随着取样密度变小,图像质量变差,图像颗粒非常明显,损失了诸多细节。
三、完整程序
a=imread('123.bmp');
b=rgb2gray(a);
figure(1)
imshow(b);
title('8bits 128x128灰度图像');[m,n]=size(b);
for i=1:m
for j=1:nif(b(i,j)>0)&&(b(i,j)<127)b(i,j)=0; elseb(i,j)=255; end
end
end
figure(2)
imshow(b);
title('1bit 128x128图像');
b1=rgb2gray(a);
[m,n]=size(b1);
for i=1:m
for j=1:nif(b1(i,j)>0)&&(b1(i,j)<32)b1(i,j)=0; endif(b1(i,j)>31)&&(b1(i,j)<64) b1(i,j)=32; endif(b1(i,j)>63)&&(b1(i,j)<96) b1(i,j)=64; endif(b1(i,j)>95)&&(b1(i,j)<128) b1(i,j)=96; endif(b1(i,j)>127)&&(b1(i,j)<160) b1(i,j)=128; endif(b1(i,j)>159)&&(b1(i,j)<192) b1(i,j)=160; endif(b1(i,j)>191)&&(b1(i,j)<224) b1(i,j)=192; Endif(b1(i,j)>191)&&(b1(i,j)<224) b1(i,j)=224; endif(b1(i,j)>223)b1(i,j)=255; end
end
end
figure(3)
imshow(b1);
title('3bits 128x128图像');
figure(4)
b=rgb2gray(a);
J= b(1:2:end,1:2:end);
imshow(J);
title('8bits 128*128变换为64*64');
figure(5)
J = b(1:2:end,1:2:end);
J=imresize(b,[32,32]);
imshow(J);
title('8bits 128*128变换为32*32');