基于MAtlab图像压缩编码
基于Matlab的JPEG图像压缩编码仿真实现

基于Matlab的图像压缩实现_曹玉茹

29982009,30(12)计算机工程与设计Computer Engineering and Design0引言虽然表示图像需要大量的数据,但图像数据是高度相关的,或者说存在冗余信息,去掉这些冗余信息后可以有效压缩图像,同时又不会损害图像的有效信息。
数字图像的冗余主要表现为以下几种形式:空间冗余、时间冗余、视觉冗余、信息熵冗余、符号冗余、结构冗余和知识冗余。
由于在图像数据中存在如此多的冗余信息,因此,这为图像压缩编码提供了依据。
经过压缩之后的图像,其容量可以大大减少,更加方便存储和传输。
我们平常所拍摄的数码图像都含有非常大的数据量,它与通信网容量的矛盾及其传输和存储的困难都极大地制约了数字图像的发展。
图像压缩编码最根本的目的就是要以尽量少的比特数来表征图像,同时要保持解压缩后图像的质量,使之符合拍摄者的要求。
与此同时,由于拍摄者的水平参差不齐,往往拍摄的图像会不尽如人意。
因此,对原始图像的二次处理也成为一个非常引人注目的课题。
传统的图像压缩方法主要是基于DCT 变换的压缩。
由于DCT 除了具有一般的正交变换性质外,它的变换阵的基向量能很好地描述人类语音信号和图像信号的相关特征。
因此,在对语音信号、图像信号的变换中,DCT 变换被认为是一种准最佳变换。
近年颁布的一系列视频压缩编码的国际标准建议中,都把DCT 作为其中的一个基本处理模块。
除此之外,DCT 还是一种可分离的变换。
现在新型的图像压缩有了这样一个趋势,即从基于DCT 变换的压缩转向基于小波信号进行压缩。
由于小波的种类繁多,利用不同的小波可以进行不同图像的压缩,而且相对于DCT 压缩,小波图像对彩色图像的压缩更加方便简单(在以后的实验将会提到)。
因此,运用小波进行图像压缩越来越广泛,最新的JEPG2000图像压缩格式就开始基于小波对图像进行压缩编码。
本文就数码图像压缩进行研究,运用Matlab 软件在DCT 域和小波域上实现图像压缩编码理论算法及其仿真实验的实现。
图像压缩的matlab代码

(1) file_name='baboon.bmp';H=imread(file_name);H=double(H);Grgb=0.2990*H(:,:,1)+0.5870*H(:,:,2)+0.1140*H(:,:,3); NbColors=255;%对矩阵进行量化编码G=wcodemat(Grgb,NbColors);%gray线性的灰阶色调map2=gray(NbColors);%建立图形窗口1figure(1);%建立图像Gimage(G);%应用调色板colormap(map2);title('原图像的灰度图');%显示workplace的变量的详细信息whos('G');%转换成为灰度级索引图像%dwt2单尺度二维离散小波变换[CA1,CH1,CV1,CD1]=dwt2(G,'bior3.7');%从分解系数中提取近似和细节% upcoef2二维系数的直接小波重构A1=upcoef2('a',CA1,'bior3.7',1);H1=upcoef2('h',CH1,'bior3.7',1);V1=upcoef2('v',CV1,'bior3.7',1);D1=upcoef2('d',CD1,'bior3.7',1);%第二幅图像%显示近似和细节figure (2);colormap(map2);subplot(2,2,1);%对矩阵进行量化编码image(wcodemat(A1,192));title('近似A1');subplot(2,2,2);image(wcodemat(H1,192));title('水平细节H1');subplot(2,2,3);image(wcodemat(V1,192));title('垂直细节V1');subplot(2,2,4);image(wcodemat(D1,192));title('对角细节D1');%对图像进行多尺度分解[C,S]=wavedec2(G,2,'bior3.7');%提取分解后的近似和细节系数%提取一维小波变换低频系数CA2=appcoef2(C,S,'bior3.7',2);%提取小波变换高频系数[CH2,CV2,CD2]=detcoef2('all',C,S,2); [CH1,CV1,CD1]=detcoef2('all',C,S,1); %从系数C重构第二层近似A2=wrcoef2('a',C,S,'bior3.7',2);H1=wrcoef2('h',C,S,'bior3.7',1);V1=wrcoef2('v',C,S,'bior3.7',1);D1=wrcoef2('d',C,S,'bior3.7',1);H2=wrcoef2('h',C,S,'bior3.7',2);V2=wrcoef2('v',C,S,'bior3.7',2);D2=wrcoef2('d',C,S,'bior3.7',2);%第三幅图像%显示多尺度分解的结果figure (3);colormap(map2);subplot(2,4,1);image(wcodemat(A1,192));title('近似A1');subplot(2,4,2);image(wcodemat(H1,192));title('水平细节H1');subplot(2,4,3);image(wcodemat(V1,192));title('垂直细节V1');subplot(2,4,4);image(wcodemat(D1,192));title('对角细节D1');subplot(2,4,5);image(wcodemat(A2,192));title('近似A2');subplot(2,4,6);image(wcodemat(H2,192));title('水平细节H2');subplot(2,4,7);image(wcodemat(V2,192));title('垂直细节V2');subplot(2,4,8);image(wcodemat(D2,192));title('对角细节D2');%第四幅图像%从多尺度分解后的系数重构原始图像并显示结果G0=waverec2(C,S,'bior3.7');%建立图形窗口4figure (4);%建立图像G0image(G0);%应用调色板colormap(map2);%绘制调色板的内容colorbar;whos('G0')(2)file_name=('bab.bmp');H=imread(file_name);H=double(H);ca=0.2990*H(:,:,1)+0.5870*H(:,:,2)+0.1140*H(:,:,3);NbColors=255;G=wcodemat(ca,NbColors);map2=gray(NbColors);figure(1);image(G);colormap(map2);title('原图像的灰度图');whos('G');%对图像进行多尺度二维小波分解[c,s]=wavedec2(G,2,'bior3.7');ca1=appcoef2(c,s,'bior3.7',1);ch1=detcoef2('h',c,s,1);cv1=detcoef2('v',c,s,1);cd1=detcoef2('d',c,s,1);%对各频率进行小波重构a1=wrcoef2('a',c,s,'bior3.7',1);h1=wrcoef2('h',c,s,'bior3.7',1);v1=wrcoef2('v',c,s,'bior3.7',1);d1=wrcoef2('d',c,s,'bior3.7',1);G1=[a1,h1;v1,d1];figure(2);image(G1);colormap(map2);axis square;title('分解后低频和高频信息') whos('G1');ca1=appcoef2(c,s,'bior3.7',1);ca1=wcodemat(ca1,440,'mat',1);ca2=0.6*ca1;figure(3);image(ca2);colormap(map2);title('低频压缩图像');whos('ca2');ca3=appcoef2(c,s,'bior3.7',2);ca3=wcodemat(ca3,440,'mat',0); ca4=0.5*ca3;figure(4);image(ca4);title('二层分解后低频压缩图像'); colormap(map2);whos('ca4');。
使用Matlab进行图像压缩的技巧

使用Matlab进行图像压缩的技巧引言图像是一种重要的信息表达方式,广泛应用于数字媒体、通信和计算机视觉等领域。
然而,由于图像所占用的存储空间较大,如何有效地进行图像压缩成为了一个重要的问题。
Matlab作为一种强大的数学计算和数据处理工具,可以提供多种图像压缩的技巧,本文将介绍一些常用且有效的图像压缩技巧。
一、离散余弦变换(Discrete Cosine Transformation, DCT)离散余弦变换是一种将空间域中图像转换为频域中的图像的技术。
在Matlab中,可以通过dct2函数实现离散余弦变换。
该函数将图像分块,并对每个块进行DCT变换,然后将变换后的系数进行量化。
通过调整量化步长,可以实现不同程度的压缩。
DCT在图像压缩中的应用广泛,特别是在JPEG压缩中得到了广泛的应用。
二、小波变换(Wavelet Transformation)小波变换是一种将时域信号转换为时频域信号的技术。
在图像压缩中,小波变换可以将图像表示为不同尺度和频率的小波系数。
通过对小波系数进行量化和编码,可以实现图像的有效压缩。
Matlab提供了多种小波变换函数,如wavedec2和waverec2。
这些函数可以对图像进行多尺度小波分解和重构,从而实现图像的压缩。
三、奇异值分解(Singular Value Decomposition, SVD)奇异值分解是一种将矩阵分解为三个矩阵乘积的技术。
在图像压缩中,可以将图像矩阵进行奇异值分解,并保留较大的奇异值,从而实现图像的压缩。
Matlab提供了svd函数,可以方便地实现奇异值分解。
通过调整保留的奇异值个数,可以实现不同程度的图像压缩。
四、量化(Quantization)量化是将连续数值转换为离散数值的过程。
在图像压缩中,量化用于将变换后的图像系数转换为整数值。
通过调整量化步长,可以实现不同程度的压缩。
在JPEG压缩中,量化是一个重要的步骤,通过调整量化表的参数,可以实现不同质量的压缩图像。
基于Matlab环境的JPEG图像压缩算法

量 化
便 于传输 、 存储和译码器进 行译码 , 这样组织 的数据通常 称 为 JE P G位数据流(P G bt t a 。图像 的离散余弦变换 JE i sem) r
具 有把 高 度 相关 数 据 能 量 集 中 的趋 势 , 正 是 他 用 于 图 像 压 这 缩 的优 点 所 在 , 这 一点 被 广 泛 应 用 于 图 像 压 缩 。对 通 常 的 故 图像 来 说 , 多 数 D T系 数 的值 非 常 接 近 0 如 果 舍 弃 这 些 大 C 。
接近零 的 D T系数 值 , 重构 图像 是并 不会带来 画面质量 C 在
(, =0 d H , I u ) r n ” ul
,
() 5
的 显著 下 降 。所 以 , 用 D T进 行 图 像 压 缩 可 以节 约 大 量 利 C
的存储空间 。压缩应 该在最合 理的近似原 图像 的情 况下使
JE (o t it eepr gop , P G ji c r xe ru ) 即联 合 图像 专家 组 。 np u t
JE P G算法 中首先对 图像进行 分块处理 , 在对 每一 快进行 二 维离散余 弦变换 , 变换后 的系数基 本不相关 , 系数矩 阵的 且
Fu ) c )( ∑ ∑f , ・ (, = ( c ) (y x)
一
于空间线性 预测技术 ( 即差分脉冲编码调制) 算法 , 该算法 属
于无失真压缩算法 ; 2种算 法是基 于离散余 弦变换 、 程 第 行 编码 、 熵编码 的有 失真 压缩算 法。 目前 比较 流行后 一种算 法, 即有失真 D T压缩编码 。 C
基于MATLAB的JPEG压缩编码

本文对 J PEG 压缩 算法进行 了初步的研 究, 并编程 实现 了相应 的算法 , 实验结果进 对 行了分析研究 , 出结论 。 得
1 图像压缩技术的现 状
图像 压缩 技术是 数 字时 代的产 物和 重要 组成部 分 , 它的进步对整个社会 的数字化和信 息化都 有不 可估量 的推 动作用 。 然而 , 尽管各种通信媒介容量越来越大并 且各种 通信 协议不断升级 , 随着通 信量爆 炸式 此 , 图像压缩技术得 到国际上学术界 和工程 界极高 的重视 , 由此得到飞 速发展 。 并 各种 图像和 视频 压缩 国际标 准 己出现并 得到 广泛应用 , 中 J G( 其 PE 用于静态图像压缩) 和 MP G( E 用于动态图像压缩) 应用最广。 图像压缩技术的发展趋势是 : 算法更复杂 , 压 缩率更高 , E J G的压缩率在 1 o P : 左右, E 2 0 2 J G 0o P 的压缩率更高 , E 压缩标准也己经几代的发 MP G
个的进 行的 , 则称 标准量化 , 若量化 是成组的 进行 的, 则称矢量 量化 , 量化总会造成 某些信 息丢失 , 形成失真 , 即量化失真或量化噪声 , 为 使失真小 , 应量化的精细 , 但压缩比就高不 了, 这是一对矛盾 , 应选 用恰当的量化级数和 量化 曲线形状来缓解这对 矛盾 , 量化 器的引入是图 像编码产生失真的根源 , 在要求复原 图像 与原 图完全 一致 的无 失真 编码 器中必 须不 用量化 器, 但这样一来 , 压缩 比难以提 高, 在多数应用 中, 存在少量 失真并不 可怕 , 只要把失真 的程 度和性 质控 制在允许的范 围内 , 也就是把 复原 图像 的主观 质量控制在允许 的程 度内 , 可以 就 在满足 应用要 求的前提下提高 压缩 比 , 得注 值 意 的是 , 对于 同样的量化 失真 , 同的映射变 不 换和 反变换反映不 同性质 的复原图像的失 真 , 人 眼对某 些性 质的 失真 敏感而 对 另一些性 质
MATLAB中的图像压缩和编码方法

MATLAB中的图像压缩和编码方法图像压缩和编码是数字图像处理的重要领域,在各种图像应用中起着至关重要的作用。
在本文中,我们将探讨MATLAB中的图像压缩和编码方法,包括无损压缩和有损压缩,并介绍其中的一些经典算法和技术。
一、图像压缩和编码概述图像压缩是指通过一定的算法和技术来减少图像数据的存储量或传输带宽,以达到节约存储空间和提高传输效率的目的。
而图像编码则是将原始图像数据转换为一系列二进制编码的过程,以便存储或传输。
图像压缩和编码通常可以分为无损压缩和有损压缩两种方法。
无损压缩是指压缩后的数据可以完全还原为原始图像数据,不会引入任何失真或变化。
常见的无损压缩算法有Run-Length Encoding (RLE)、Lempel-Ziv-Welch (LZW)、Huffman编码等。
这些算法通常针对图像中的冗余数据进行编码,如重复的像素值或相似的图像区域。
有损压缩则是在保证一定程度的视觉质量下,通过舍弃或近似原始图像数据来减小存储或传输的数据量。
常见的有损压缩算法有JPEG、JPEG2000、GIF等。
这些算法通过离散余弦变换(DCT)、小波变换或颜色量化等方法,将图像数据转换为频域或颜色空间的系数,并通过量化、编码和压缩等步骤来减小数据量。
二、无损压缩方法1. Run-Length Encoding (RLE)RLE是一种简单高效的无损压缩算法,通过计算连续重复像素值的数量来减小数据量。
在MATLAB中,可以使用`rle`函数实现RLE编码和解码。
例如,对于一幅图像,可以将连续的像素值(如白色)编码为重复的个数,然后在解码时根据重复的个数恢复原始像素值。
2. Lempel-Ziv-Welch (LZW)LZW是一种字典压缩算法,通过将图像中连续的像素序列映射为一个短代码来减小数据量。
在MATLAB中,可以使用`lzwencode`和`lzwdecode`函数实现LZW 编码和解码。
例如,对于一段连续的像素序列,可以将其映射为一个短代码,然后在解码时根据代码恢复原始像素序列。
MATLAB通过DCT对图像进行区域编码以及门限编码压缩

实验作业7分别用区域编码和阈值编码方法实现图像压缩,用8×8DCT变换,保留50%的大系数,并对解码图像进行比较。
要求:DCT要自己实现,不能用matlab中的DCT函数区域编码程序代码:clear;I=imread('d:\3.jpg');I=double(rgb2gray(I));figure(1);imshow(uint8(I));title('原图像');Y=zeros(8,8);for i=1:8for j=1:8if i==1Y(i,j)=sqrt(1/8);elseY(i,j)=sqrt(2/8)*cos((pi*(2*(j-1)+1)*(i-1))/16);endendends=blkproc(I,[8 8],'P1*x*P2',Y,Y'); figure(2);imshow(uint8(s));for j=1:8for i=1:8if j<=8-i+1a(i,j)=1;elsea(i,j)=0;end;end;end;s=blkproc(s,[8 8],'P1.*x',a); figure(3);imshow(uint8(s));s=blkproc(s,[8 8],'P1*x*P2',Y',Y); figure(4);imshow(uint8(s));title('经过压缩处理的图像')运行结果:阈值编码程序代码clear;I=imread('d:\3.jpg'); I=rgb2gray(I); imshow(uint8(I)); title('原图像'); I=double(I); for i=1:8 for j=1:8 if (i==1)Y(i,j)=sqrt(1/8); elseY(i,j)=sqrt(2/8)*cos((i-1)*(2*j-1)*pi/(2*8)); end; end; end; s=blkproc(I,[8 8],'P1*x*P2',Y,Y'); a=ones(8,8); b=reshape(Y,1,64); midvalue=median(b); for i=1:8 for j=1:8if(abs(Y(i,j))<midvalue) a(i,j)=0; end; end; end;s=blkproc(s,[8 8],'P1.*x',a); s=blkproc(s,[8 8],'P1*x*P2',Y',Y); figure(2); imshow(uint8(s));title('被与之编码方式压缩的图像');运行结果:心得体会:由于第八章内容上课听的不是很明白,所以作业题拿到之后不知道怎么做,重新把第八章看了一遍,可是很多地方看了好久好多次还是不明白其原理,就像这次所涉及的DCT (虽然会做作业,但是实在是不理解),区域编码,门限编码,都是不明白什么意思!后来网上搜罗资料,看了颇久,请教了同学,才慢慢知道是什么一回事,做这题目的时候,遇到过不知道怎么分块的问题,后来也是同学告诉有个blkproc 的函数可以用,才使到程序精简化。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
end MIU=zeros(M1,siz_book);
t=1; while t==1
for i=1:M1 B=zeros(siz_word,1); B=data2(i,:); A=zeros(siz_word,1); A=code_book(1,:); tep=0.0; for l=1:siz_word tep=tep+(A(l)-B(l))^2; end r=1; for j=2:siz_book A=code_book(j,:); temp=sum((A-B).^2); if temp<tep r=j; tep=temp; end end MIU(i,r)=1.0;
end t=0; code_book1=zeros(siz_book,siz_word); for j=1:siz_book
for l=1:siz_word tep=0.0;
11
for i=1:M1 code_book1(j,l)=code_book1(j,l)+MIU(i,j)*data2(i,l); tep=tep+MIU(i,j); end if tep>0
数字图像处理
题
目 基 于 LBG 算 法的 矢 量 量 化
图像压缩编码实验
院( 系 )名 称 专业名称 学生姓名 学生学号 指导教师
2012 年 5 月 15 日 摘要
在航天、军事、气象、医学、多媒体等领域中经常需要大量存储 和传输各种静态图像和视频图像。为了提高传输效率和减少存储空
间,必须采取有效的压缩编码算法消除图像中所包含的各种冗余信息 并在给定的失真条件下使用尽量少的比特数来描述图像。 要想得到 好的性能编码,仅采用标量量化是不可能的,而矢量量化(VQ)作为 一种高效的数据压缩技术,其突出优点是压缩比大以及解码算法简 单,已被广泛应用于图像压缩领域。本实验采用 LBG 算法得图像压 缩所需要的码书,通过码书实现图像压缩编码。大量实验结果表明: LBG 算法对初始码书依赖性大,对于给定的码字大小,码书越大, 压缩比越低,但重建图像质量越好;码书相同时码字较小的编码性能 较优。
1
步骤 4:根Байду номын сангаас最佳码书条件,计算各胞腔的质心,即
y (n1) i
1 S (n)
i
v vSi( n )
由这 N 个新质心 yi(n1) ,i 0,1,, N 1形成新码书 C (n) ,置 n n 1, 转步骤 2。
二、实验步骤
(1)对给定图片,采用 LBG 算法获取最佳码书设计; (2) 采用熵编码实现图像索引编号的压缩。
关键字:矢量量化(VQ)、LBG 算法、码书、压缩比、码字
一、实验原理
矢量量化:
当把多个信源符号联合起来形成多维矢量,再对矢量进行标量
量化时自由度将更大,同样的失真下,量化基数可进一步减少,码率
可进一步压缩。这种量化叫矢量量化。
LGB 算法:
一种有效和直观的矢量量化码书设计算法——LBG 算法(也叫
%取整(朝负无穷方向) %取余
end data2=zeros(M1,siz_word); l=1; A=zeros(siz_word,1); r=1; for i=1:m*n
A(r)=data1(i); if r==siz_word
data2(l,:)=A; l=l+1; r=1; else r=r+1; end end code_book=zeros(siz_book,siz_word); %LBG 算法开始 %初始化码书 l=1; r=1; A=zeros(siz_word,1); for i=1:siz_book*siz_word A(r)=data1(i); if r==siz_word code_book(l,:)=A; l=l+1; r=1; else r=r+1; end
4
图 1-3 siz_book=1024
然而当 siz_book=1024 时,与 siz_book=512 时的矢量量化后的图片变 化不大,用眼睛很难区分开,说明影响图片质量的最主要因素不是码 书的大小了,而是码字的大小,或者还有其他因素,导致图片解码后 的不够清晰。
2. 同时码字的大小也对矢量量化编码的影响较大,则下面在码书不变 (siz_book=512)的情况下,改变码字的大小,从而总结码字对图像恢 复的影响。(由于改变码字大小,直方图基本不变,所以只对矢量量 化编码后恢复的图片进行对比)
12
data3(i,:)=code_book(t,:); end data5=zeros(m,n); for i=1:m
for j=1:n tep=(i-1)*n+j; i1=floor(tep/siz_word); if i1==0 i1=1; end j1=mod(tep,siz_word); if j1==0 j1=siz_word; end data5(i,j)=floor(data3(i1,j1)*255);
三、运行结果如下:
1.在给定的码字(siz_word=4)下,改变码书大小 (1)当 siz_book=512 时:
2
图 1-1
siz_book=512
(2)当 siz_book=256 时,
3
图 1-2 siz_book=256 对比图 2-1、图 1-2 可以看出:当把码书大小改为 siz_book=256 时, 图片明显比码书为 512 时的模糊,因为码书越小,压缩比就越高,所 分的区间更大,导致图片解码时不精确度加大。 (3)当 siz_book=1024 时,
code_book1(j,l)=code_book1(j,l)/tep; else
code_book1(j,l)=0.0; end end end tep=0.0; for j=1:siz_book for l=1:siz_word tep=tep+(code_book1(j,l)-code_book(j,l))^2; end end if tep/siz_book<0.000001 t=0; end code_book=code_book1; end %编码后图像恢复过程 data3=zeros(M1,siz_word); for i=1:M1 for j=1:siz_book if MIU(i,j)==1 t=j; end end
,
S1(
n
)
,,
S
(n) N 1
, Si(n) 满足
S
(n i
)
v
|
d
(v,
yi(n)
)
min
0 jN 1
d
(v,
y
(n) j
),v
X
步骤 3:计算平均失真
D (n)
1 M
M 1
i0
min
0 j N 1
d
(
xi
,
y
(n) j
)
判断相对误差是否满足
(D(n1) D(n) ) / D(n)
若满足,则停止算法,码书 C (n) 就是所求的码书。否则,转步骤 4。
5
(1)当 siz_word=1 时,
图 2-1
siz_word=1
注:上图中男孩的脸还是很清晰
6
(2)当 siz_word=4 时,运行结果如图 1-1 所示即下图
注:男孩的脸开始变模糊 (3)当 siz_word=8 时,
图 2-3 siz_word=8 注:较图 1-1,男孩的脸模糊程度加深
7
(4)当 siz_word=10 时,
图 2-2 siz_word=10 注:上图男孩的脸较以上所有的图,处于最模糊状态,随着码字的增 加,逐渐模糊。
结合上述图片可以明显地看出:码字对图像恢复影响较明显,当 siz_word=1 时,编码后恢复的图像看着轮廓很清晰,逐渐增加码字大 小,当 siz_word=4,图片中男孩的脸开始变模糊,当 siz_word=8 时, 模糊程度加深,继续增加码字到 10 时,男孩的脸完全处于模糊状态。 所以概括性地总结得到:当码字变小时,图片的轮廓更加清晰,而码 字变大时,图片编码后恢复得更加模糊。 说明对于给定的码字,码书越大,压缩比就越低,重建的图片效果就 越好,而在码书给定的情况下,码字越小的编码型越优。
8
附录:
程序代码如下:
clear all; data=imread('Boy.bmp'); data=double(data)/255; [m,n]=size(data); figure(1) subplot(1,2,1); imshow(data); title('原始图像') subplot(1,2,2); imhist(data); title('直方图') siz_word=4; siz_book=512; data1=zeros(m*n,1); for i=1:m
GLA 算法)是由 Linde、Buzo 和 Gray 于 1980 年首先提出来的。该算
法基于最佳矢量量化器设计的最佳划分和最佳码书这两个必要条件,
且是 Lloyd 算法在矢量空间的推广,其特点为物理概念清晰、算法理
论严密及算法实现容易。
针对训练矢量集为 X x0 , x1,, xM 1,其 LBG 算法的具体步骤如下:
for j=1:n data1((i-1)*n+j)=data(i,j);
end end M1=floor(m*n/siz_word); r=mod(m*n,siz_word); if r>0
M1=M1+1;
9
%调入原始图像 %归一化 %求出图像的行数和列数
%显示原始图像
%显示原始图像的色彩直方图 %设置码字的大小 %设置码书的大小 %以行为 m*n,列为 1 的零矩阵