数字图像处理学习——第八章 图像压缩 (2)

本文深入探讨了数字图像处理中的图像压缩技术,重点介绍了霍夫曼编码的概念和应用。通过mat2huff函数,读者可以理解如何在MATLAB中实现这一编码过程。
摘要由CSDN通过智能技术生成

霍夫曼编码

mat2huff函数

function y = mat2huff( x )
%MAT2HUFF 编码了一个矩阵
%  Y = MAT2HUFF(X) Huffman使用符号概率在单位宽度的直方图bins上编码了
%矩阵X ,范围在X 的最大值和最小值之间。被编码的数据作为结构体Y 被
%返回:
%Y.code     X被Huffman编码的值,存储在一个uint16的向量里。Y 的其他
%                 领域包括额外的解码信息,包括:
% Y.min      X的最小值+32768
% Y.size      X的大小
% Y.hist      X的直方图
%可以作为输入的X的类型:logical, uint8,uint16,uint32,int8,int16
%或double.X的最小值必须被表示为int16
%
%如果X是一个非整数值的double类,例如一幅值在0,1之间
%的图像,在调用之前,首先将x缩放到适当的整数范围。例如,使用Y =
%MAT2HUFF(255*X)对256灰度级进行编码
%
%注意:Huffman编码单词的数目在round(max(X(:)))-
%rount(min(X(:))) +1之间。你可能需要缩放输入X
%以生成合理长度的代码。X的最大行列尺寸为65535.
if ndims(x) = 2 | ~isreal(x) | (~isnumeric(x) & islogical(x))
    error('X must be a 2-D real numeric or logical matrix');
end
%存储输入x的大小
y.size = uint32(size(x));

%寻找x值的范围并存储他的最小值为unit16格式
x = round(double(x));
xmin = min(x(:));
x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值