使用蒸汽吞吐男人编码的图像压缩
代码说明:
函数代码 = huffman(p) 哈夫曼 %生成符号源变量长度的哈夫曼代码。 代码 %= HUFFMAN(P) 返回一个哈夫曼代码作为二进制字符串的单元格 %数组的代码输入的符号概率矢量体育在代码中的每个单词 %对应于其概率是在相应的指数符号 %的体育 % %检查输入的参数的合理性。 error(nargchk(1,1,nargin)) ; 如果 (ndims(p) ~ = 2) | |(min(size(p)) > 1) | |~isreal(p) | |~isnumeric(p) 错误 ("P 必须是一个实数值向量") ; 结束 %全局变量生存所有递归函数 "makecode" 的 全局代码 CODE=cell(length(p),1) ;%Init 全球太阳能电池阵列 如果 length(p) > 1%时多个符号...... p = p/sum(p) ;%规范化输入的概率 s = reduce(p) ;%做哈夫曼源符号削减 makecode (s,[]) ;%以递归方式生成的代码 其他 代码 = {"1"};%其他、 微不足道的一个符号案例 ! 结束 %……………………………………………………………….% 函数 s = reduce(p) ; %在 MATLAB 的单元格结构中通过创建一个哈夫曼源减少树 减少 %执行源符号减少,直到只有两个 剩余的 %符号。 s = cell(length(p),1) ; %生成符号节点 1 2、 3,开始树...到引用 %符号的概率。 为我 = 1:length(p) s {i} = i ; 结束 同时 numel(s) > 2 [p,我] = sort(p);%排序符号概率 p(2) = p(1) + p(2) ;%合并
下载说明:请别用迅雷下载,失败请重下,重下不扣分!