《数字图像处理-数字图像编码实验|CSDN创作打卡》杭州电子科技大学

作业一: 无损编码/压缩算法实验

问题1: 选择灰度图像,按照行的方式展开像得到一维的向量。按照一维预测的公式:

,自行设计预测算法实现一维无损预测压缩。将预测压缩后的一维向量(由预测误差组成),进行一维行程/游程编码。计算原图、最终行程/游程编码压缩后数据所需要的存储空间,计算压缩率。

 

I=imread('D:\testpho\testpho.jpeg'); 
[m1, n1]=size(I);
I=rgb2gray(I);
x=double(I);
y=LPCencode(x);   %得到一维无损预测压缩并一维行程编码后的矩阵(一维)
[m2, n2]=size(y);
%xx=LPCdecode(y);
fprintf('%d',(m2*n2)/(m1*n1));

%编码器
%LPCencode函数用一维无损预测编码压缩图像x,a为预测系数,如果a默认,则默认a=1,就是前值预测。
 function y=LPCencode(x, a)
 error(nargchk(1, 2, nargin));
 if nargin<2
    a=1;
 end
x=double(x);   
[m, n]=size(x);
p=zeros(m, n);  %存放预测值
xs=x;   
zc=zeros(m, 1);
for i=1:length(a)
    xs=[zc  xs(:, 1:end-1)];    
    p=p+a(i)*xs;
end
sig = p(:);  % 转化为一维数据
enco = runlengthenco(sig);  % 编码
y=enco;
%y=x-round(p);

% 编码
function enco = runlengthenco(sig)
    enco = zeros(1);
    k = 1;
    enco(k) = sig(1);
    enco(k+1) = 1;
    i = 2;
    while (i<=length(sig))
        if (sig(i)==enco(k))
            enco(k+1) = enco(k+1)+1;
        else
            k = k+2;
            enco(k) = sig(i);
            enco(k+1) = 1;
        end
        i = i+1;
    end
    enco = enco';
end

实验结果

 

 

作业二: 有损压缩算法实验

查阅JPEG编码的有关资料,对图像进行JPEG压缩,算法步骤必须包括如下几个部分:图像分块,离散余弦变换,量化,ac和dc系数的Z字形编排

问题1: 质量因子分别选为20,60,80,显示原图与不同质量因子下解码后的图像;

问题2: 计算图像压缩前后的压缩比,计算原图与解压图之间的均方根误差。

 

clear;
close all;
factor = 20
I=imread('1.jpg'); 
subplot(121);imshow(I);title('原图');
imwrite(I,'lena1.jpg','quality', factor); 
x1=imread('lena1.jpg');
k1=imfinfo('lena1.jpg')
s1=k1.FileSize/1024;
e1=I(:)-x1(:); 
[m1,n1]=size(e1);
erms1=sqrt(sum(e1(:)).^2/(m1*n1));%求均方根误差
i_size1=k1.Width*k1.Height*k1.BitDepth/8;
i_compress1=k1.FileSize;
ratio1=i_size1/i_compress1;
subplot(122);imshow(I);title('压缩后');
fprintf('质量因子:%d\n',factor);
fprintf('均方根误差:%f\n',erms1);
fprintf('压缩比:%f\n',ratio1);
fprintf('压缩后图像大小:%f\n',i_compress1);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MCL.龙默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值