实验题目
1.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的采样。
2.对于给定图片,在MATLAB软件下编程实现对图片的不同程度的量化。
实验原理
1.采样
我们获取到的图像一般为模拟图像,要让计算机进行处理需将其数字化,采样的作用就是将模拟图像转变为数字图像。一般来说,采样间隔越大,所得图像像素数越少,空间分辨率越低,质量差,严重时出现马赛克效应;采样间隔越小,所得图像像素数越多,空间分辨率越高,图像质量好,但数据量大。
2.量化
计算机软件得到了一个样本点(图片)的数据,然后它要用多少个二进制位去表示它(重现图片),如下图
根据上图,可以知道图像有一个灰度的概念
1bit 只有 2 个灰度级,0 和 1
2bit 有 4 个灰度级,0, 1, 2, 3
8bit 有 256 个灰度级,0 到 255
实验代码
1.采样
t=imread('t1.jpg')
t1=rgb2gray(t)
imshow(t1),title('原图') %原图像 需要将其先转换为灰度图像
t2=t1(1:2:end,1:2:end)
t3=t1(1:4:end,1:4:end)
t4=t1(1:8:end,1:8:end)
t5=t1(1:16:end,1:16:end)
figure,subplot(2,2,1),imshow(t2),title('1:2采样')
subplot(2,2,2),imshow(t3),title('1:4采样')
subplot(2,2,3),imshow(t4),title('1:8采样')
subplot(2,2,4),imshow(t5),title('1:16采样')
2.量化
t=imread('t1.jpg');
r=imread('t1.png');
t1=rgb2gray(t);
r1=rgb2gray(r);
t2=histeq(t1,64);
t3=histeq(t1,32);
t4=histeq(t1,16);
t5=histeq(t1,2);
r2=histeq(r1,64);
r3=histeq(r1,32);
r4=histeq(r1,16);
r5=histeq(r1,2);
imshow(t1);
figure,subplot(2,2,1),imshow(t2),title('量化 64')
subplot(2,2,2),imshow(t3),title('量化 32')
subplot(2,2,3),imshow(t4),title('量化 16')
subplot(2,2,4),imshow(t5),title('量化 2')
figure,imshow(r1)
figure,subplot(2,2,1),imshow(r2),title('量化 64')
subplot(2,2,2),imshow(r3),title('量化 32')
subplot(2,2,3),imshow(r4),title('量化 16')
subplot(2,2,4),imshow(r5),title('量化 2')
实验结果图
原图
采样对比图
采样分析:
对于同样一副图像,不同的采样比例,所得的结果图是不一样的。拿采样比例1:2来说,意思是:对于原图像,每个2个像素点进行采样,采样图像与原图像差别不大。当采样比例为1:4和1:8时,采样所得的图像开始出现模糊。当采样比例达到1:16时,图像已经完全模糊掉了。这是因为对于原图像,1:16的比例只能获得原图像很少的特征点,很多像素点都被丢失了,所以看起来模糊。
原图
量化对比图
量化分析:
其实量化的本质就是对0~255个灰度级进行分级,每个级用一个灰度值来表示。级数越多,其越接近原图像。当级数只有2时,会被分成0和255,也就是我们所说的黑白图像了。