Matlab 图像处理-哈夫曼编码(huffman)

来源:互联网 发布:小米笔记本能装linux 编辑:程序博客网 时间:2024/06/11 10:29
哈夫曼编码是一种可变长无损编码,应用范围广。这里介绍利用matalb实现哈夫曼编码方法。matalb中带有相关函,下面一一介绍:ENCO = huffmanenco(SIG, DICT) : 哈夫曼编码函数,SIG为输入编码信号,DICT为编码字典,由函数huffmandict()生成;DECO = huffmandeco(COMP, DICT) :哈夫曼解码函数,COMP为哈夫曼编码向量,即上面的ENCO;DICT = huffmandict(SYM, PROB) : 哈夫曼字典生成函数,SYM为信源符号向量,包含信息中所有符号,PROB为相应符号出现的概率;

代码实现:

clear;clear all;I = imread('F:\Myfile\Matlab\Test_picture\1_1.jpg');[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'); %把向量重新转换成图像块; subplot(1,2,1);imshow(I);title('original image'); subplot(1,2,2);imshow(uint8(Ide));title('deco image');
1 1
原创粉丝点击