数字图像处理|Matlab-数字图像编码实验-无损编码/压缩算法实验-实现哈夫曼压缩, 计算原图和压缩以后的尺寸,计算压缩率并比较分析

Matlab-数字图像编码实验-无损编码/压缩算法实验

代码链接:https://download.csdn.net/download/qq_43571150/12033273

问题
实现哈夫曼压缩, 计算原图和压缩以后的尺寸,计算压缩率并比较分析

结果👇
在这里插入图片描述
Matlab代码👇

clear;
clear all;
A=imread('01.jpg');
I=rgb2gray(A);

[M,N] = size(I);
I1 = I(:);
P = zeros(1,256);
%获取各符号的概率;
for i = 0:255
    P(i+1) = length(find(I1 == i))/(M*N);
end

k = 0:255;
dict = huffmandict(k,P); %生成字典
enco = huffmanenco(I1,dict); %编码
deco = huffmandeco(enco,dict); %解码
Ide = col2im(deco,[M,N],[M,N],'distinct'); %把向量重新转换成图像块;

decolength=length(deco); 
encolength=length(enco); 

 
subplot(1,2,1);imshow(I);title('原图');
subplot(1,2,2);imshow(uint8(Ide));title('压缩');
 
OB=encolength;
sumcode=decolength;
CR=sumcode/OB;
disp(['原图 Bit:                  ',num2str(OB),' bit']);
disp(['压缩图像 Bit:               ',num2str(sumcode),' bit']);
disp(['压缩率:                     ',num2str(CR)]);
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章