⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mat2huff.m

📁 包含完整的程序代码
💻 M
字号:
function y=mat2huff(x)if ndims(x)~=2 | ~isreal(x) | (~isnumeric(x) & -islogical(x))error('x必须是一个2D的实矩阵或是逻辑矩阵');end% 存储x的大小y.size=uint32(size(x));%找出x值的范围x=round(double(x));xmin=min(x(:));xmax=max(x(:));pmin=double(int16(xmin));pmin=uint16(pmin+32768);y.min=pmin;%在xmin和xmax中计算输入的直方图x=x(:)';h=histc(x,xmin:xmax);if max(h)>65535h=65535*h/max(h);endh=uint16(h);y.hist=h;% 计算输入矩阵的编码并存储  %生成huffman编码图map=huffman(double(h));hx=map(x(:)-xmin+1);hx=char(hx);hx=hx(:)';hx(hx==' ')=[];%计算编码大小ysize=ceil(length(hx)/16);hx16=repmat('0',1,ysize*16);hx16(1:length(hx))=hx;hx16=reshape(hx16,16,ysize);%把二进制转化成十进制hx16=hx16'-'0';twos=pow2(15:-1:0);y.code=uint16(sum(hx16.*twos(ones(ysize,1),:),2))';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -