Matlab数字图像处理尝试之:[9]编码和解码
1、简述原理,打印出原始图像和解压后图像,计算信噪比,估算压缩比。
2、1)、采用门限编码法来处理变换系数:clear all;I=imread('C:\Users\zjy概嗤先眚\Desktop\test1.png');I=im2double(I);D=dctmtx(8);B=blkproc(I,[8,8],'P1*x*P2',D,D');mask=[1 1 1 1 1 1 1 1;1 1 1 1 0 0 0 0;...1 1 0 0 0 0 1 1;1 0 0 0 1 1 1 0;...1 0 0 1 1 0 0 1;1 0 1 1 0 0 1 0;...1 0 1 0 0 1 0 1;1 0 1 0 1 0 1 0];B2=blkproc(B,[8,8],'P1.*x',mask);I2=blkproc(B2,[8,8],'P1*x*P2',D',D);figure(1),imshow(I);title('a)原始图像');figure(2),imshow(I2);title('b)压缩后图像');
3、以上是通过离散余弦变换编码对原始图像进行编码压缩,并采用门限编码法来处理变换系数,压缩比为9:16;从效果来看,得到的图像质量好;
4、2)、姗隗肆念采用区域编码法来处理变换系数:clear all;I=imread('C:\Users\zjy\Desktop\test1.png');I租涫疼迟=im2double(I);D=dctmtx(8);B=blkproc(I,[8,8],'P1*x*P2',D,D');mask=[1 1 1 1 1 0 0 0;1 1 1 1 0 0 0 0;...1 1 1 0 0 0 0 0;1 1 0 0 0 0 0 0;...1 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0;...0 0 0 0 0 0 0 0;0 0 0 0 0 0 0 0];B2=blkproc(B,[8,8],'P1.*x',mask);I2=blkproc(B2,[8,8],'P1*x*P2',D',D);figure(1),imshow(I);title('a)原始图像');figure(2),imshow(I2);title('b)压缩后图像');
5、以上是通过离散余弦变换编码对原始图像进行编码压缩,并采用区域编码法来处理变换系数,压缩比为15:64;从效果来看,得到的图像质量较门限编码的质量稍差;