文档库 最新最全的文档下载
当前位置:文档库 › matlab 图像编码+答案

matlab 图像编码+答案

matlab 图像编码+答案
matlab 图像编码+答案

实验四图像编码

一、实验目的

了解图像压缩编码的分类与评价指标;

掌握常用的熵编码方法以及matlab编程;

掌握基于FFT的图像压缩技术以及matlab编程;

掌握基于DCT的图像压缩技术以及matlab编程;

熟悉JPEG图像压缩编码过程;

掌握imwrite函数实现可变quality的JPEG压缩;

二、实验内容

(1)对给定的图像tu.bmp,进行哈夫曼编码,并解码输出,观察workspace下各个矩阵数据。

h=imread('tu.bmp');

[m,n]=size(h);

subplot(1,2,1);

imshow(h);

title('yuantu');

h=h(:);

s=0:255;

for i=0:255

p(i+1)=length(find(h==i))/(m*n);

end

dict=huffmandict(s,p);

enco=huffmanenco(h,dict);

deco=huffmandeco(enco,dict);

deco=col2im(deco,[m,n],[m,n],'distinct');

subplot(1,2,2);

imshow(uint8(deco));

title('huffman');

(2)阅读jpeg压缩编码的有关资料,使用imwrite函数对lena图像进行jpeg压缩,对比显示原图与不同质量参数下解码后的图像,并显示均方根误差、压缩比、图像大小

x=imread('lena.bmp');

imwrite(x,'c:/lena1.jpg','quality',20);

imwrite(x,'c:/lena2.jpg','quality',60);

imwrite(x,'c:/lena3.jpg','quality',80);

x1=imread('c:/lena1.jpg');

k1=imfinfo('c:/lena1.jpg');

s1=k1.FileSize/1024;

e1=x(:)-x1(:);

[m1,n1]=size(e1);

erms1=sqrt(sum(e1(:)).^2/(m1*n1));

i_size1=k1.Width*k1.Height*k1.BitDepth/8;

i_compress1=k1.FileSize;

ratio1=i_size1/i_compress1;

subplot(221);

imshow(x1);

title('质量因子:20 均方根误差:722.793 压缩比:14.448 图像大小:4536');

x2=imread('c:/lena2.jpg');

k2=imfinfo('c:/lena2.jpg');

s2=k2.FileSize/1024;

e2=x(:)-x2(:);

[m2,n2]=size(e2);

erms2=sqrt(sum(e2(:)).^2/(m2*n2));

i_size2=k2.Width*k2.Height*k2.BitDepth/8;

i_compress2=k2.FileSize;

ratio2=i_size2/i_compress2;

subplot(222);

imshow(x2);

title('质量因子:60 均方根误差:454.8008 压缩比:7.416 图像大小:8837');

x3=imread('c:/lena3.jpg');

k3=imfinfo('c:/lena3.jpg');

s3=k3.FileSize/1024;

e3=x(:)-x3(:);

[m3,n3]=size(e3);

erms3=sqrt(sum(e3(:)).^2/(m3*n3));

i_size3=k3.Width*k3.Height*k3.BitDepth/8;

i_compress3=k3.FileSize;

ratio3=i_size3/i_compress3;

subplot(223);

imshow(x2);

title('质量因子:80 均方根误差:343.2344 压缩比:5.0451 图像大小:12990');

(3)读取lena图像,编写一个程序,实现下列算法:首先将图像分成许多8X8的子图像,对每个子图像进行DCT,对每个子图像的64个系数,按照每个系数的大小来排序后,舍去小的变换系数,只保留16个系数,实现图像4:1的压缩

%读取lena图像,编写一个程序,实现下列算法:首先将图像分成许多8X8的子图像,对每个子图像进行DCT,

%对每个子图像的64个系数,按照每个系数的大小来排序后,舍去小的变换系数,只保留16个系数,实现图像4:1的压缩

cr=0.25;

i=imread('lena.bmp');

i1=double(i)/255;

subplot(121);

imshow(i1);

t=dctmtx(8);

dctcoe=blkproc(i1,[8 8],'P1*x*P2',t,t');

coevar=im2col(dctcoe,[8 8],'distinct');

coe=coevar;

[y,ind]=sort(coevar);

[m,n]=size(coevar);

snum=64-64*cr;

for i=1:n

coe(ind(1:snum),i)=0;

end

b2=col2im(coe,[8 8],[256 256],'distinct');

i2=blkproc(b2,[8 8],'P1*x*P2',t',t);

subplot(122);

imshow(i2);

%e=double(i1)-double(i2);

%[m,n]=size(e);

三、涉及知识点

(1)哈夫曼具体的编码方法为:

把输入元素按其出现概率的大小顺序排列起来,然后把最末两个具有最小概率的元素之概率加起来;

②把该概率之和同其余概率由大到小排队,然后再把两个最小概率加起来,

再重新排队;③重复②,直到最后只剩下两个概率为止

matlab函数:

huffumandict函数:生成哈夫曼编码字典

使用格式dict=huffmandict(s,p) s为灰度级,p为各灰度级出现的概率

huffmanenco函数:对图像进行哈夫曼编码

使用格式: enco=huffmanenco(I,dict);I为图像数据转成的列向量,dict为哈夫曼编码字典

Huffmandeco函数:对编码进行解码

使用格式:deco=huffmandeco(enco,dict);enco为压缩编码,dict为哈夫曼编码字典

(2)JPEG图像编码过程

(3)fft2函数:图像的二维快速傅立叶变换,语法格式:

F=fft2(I),能够将图像从空间域变换到频率域

ifft2函数:图像的二维快速傅立叶变换逆变换函数,语法格式:

I=fft2(F),能够将图像从频率域变换到空间域

(4)blkproc函数:能够将每个显示块从图像中提取出来,然后将其作为参数传递给任何用户函数。语法格式:

b=blkproc(a,[m n],fun,p1,p1,...);

功能是对图像a的每个不同mXn块应用函数fun进行处理,p1,p2为fun函数中除了x之外的其他参数。

(5)im2col函数:将图像块排列成向量,语法格式为:

b=im2col(a,[m n],block_type)

其功能是将图像a的每一个mXn块转换成一列,重新组合成矩阵b。block_type 指定排列的方式,当block_type为distinct时,图像块不重叠;当block_type为sliding是,图像块滑动

(6)col2im函数:将向量排列成图像块,语法格式为:

b=col2im(a,[m n],[mm nn],block_type)

其功能是将图像a的每一列排列成mXn的图像块,并用这些图像块组合成mmXnn的图像。block_type指定排列的方式,当block_type为distinct时,图像块不重叠;当block_type为sliding是,图像块滑动

(6)sort(A):如果A是向量,sort(A) 对A中元素按照升序排列;如果A是矩阵,sort(A) 对A按每一列元素按照升序排列。

[B,IX] = sort(A,...)返回索引数组IX,其大小为size(IX) == size(A)。若A是一个向量,B = A(IX);若A是一个m*n的矩阵,则IX的每一列是与A中列向量的元素相对应的置换向量。

for j = 1:n

B(:,j) = A(IX(:,j),j);

end

(7)imwrite函数:

功能:把图像写入图形文件中。

使用方法:

imwrite(f, 'filename')

文件名必须包括指明格式的扩展名。也可以增加第三个参数,显式指明文件的格式。比如

>> imwrite(f, ‘lena1.bmp', 'bmp')

也可以写成:>> imwrite(f, ‘lena1.bmp')

还可以有其他参数,比如jepg图像还有质量参数:

>> imwrite(f, ‘lena1.jpg’, ‘quality’, q)

q是0到100之间的一个整数,q值越大,图像由于压缩所造成的质量下降越小,但图像的存储需要的空间越大,q的默认值是75。

四、源程序以及结果

五、心得体会

基于DCT的数字图像压缩及Matlab实现

实验三基于DCT的数字图像压缩及Matlab实现兰州大学信息学院08级通信工程一班赵军伟 一、课程设计的目的和要求等内容 实验目的:掌握基于DCT变换的图像压缩的基本原理及其实现步骤;通过使用MATLAB,对同一幅原始图像进行压缩,进一步掌握DCT和图像压缩。 实验要求: 1、学生在实验操作过程中自己动手独立完成,2人为1组。 2、上机过程中由指导老师检查结果后方可做其他内容。 3、完成实验报告:按照实验的每个题目的具体要求完成 二、基本原理或方法 (一)图像压缩基本原理 图像数据压缩的目的是在满足一定图像质量的条件下,用尽可能少的比特数来表示原始图像,以提高图像传输的效率和减少图像存储的容量,在信息论中称为信源编码。图像压缩是通过删除图像数据中冗余的或者不必要的部分来减小图像数据量的技术,压缩过程就是编码过程,解压缩过程就是解码过程。压缩技术分为无损压缩和有损压缩两大类,前者在解码时可以精确地恢复原图像,没有任何损失;后者在解码时只能近似原图像,不能无失真地恢复原图像。 假设有一个无记忆的信源,它产生的消息为{ai},1≤i≤N,其出现的概率是已知的,记为P(ai)。则其信息量定义为: 由此可见一个消息出现的可能性越小,其信息量就越多,其出现对信息的贡献量越大,反之亦然。 信源的平均信息量称为“熵”(entropy),可以表示为: 对上式取以2为底的对数时,单位为比特(bits):

根据香农(Shannon)无噪声编码定理,对于熵为H的信号源,对其进行无失真编码所可能达到的最低比特数为,这里为一任意小的正数,因此可能达到的最大压缩比为: 其中B是原始图像的平均比特率。 在图像压缩中,压缩比是一个重要的衡量指标。可以定义压缩比为: (二)图像压缩的基本模型 图像编码包括两个阶段,前一个阶段就是利用预测模型或正交模型对图像信号进行变换;后一个阶段是利用已变换信号的统计特性,对其分配适当的代码来进行编码传输。 编码器与解码器的结构分别如图(a)、(b)。 在发送端,输入的原始图像首先经过DCT变换后,其低频分量都集中在左上角,高频分量分布在右下角(DCT变换实际上是空间域的低通滤波器)。由于该低频分量包含了图像的主要信息,而高频分量与之相比就不那么重要了,所以可以忽略高频分量,从而达到压缩的目的。将高频分量去掉就要用到量化,这是产生信息损失的根源。 “量化”的主要任务是用有限个离散电平来近似表达已抽取出的信息。在此采用均匀量化,通过改变程序中的量化因子Q的值以得到不同压缩比的图像。Huffman编码时,首先对经DCT变换及量化后的图像收据扫描一遍,计算出各种像素出现的概率;然后按概率的大小指定不同长度的唯一码字,由此得到一张Huffman表。编码后的图像记录的是每个像素的码字,而码字与量化后像素值的对应关系记录在码表中。生成的一维字符矩阵即为实际中要传输的序列,压缩后

基于DCT的图像压缩及Matlab实现

通信专业课程设计一 太原科技大学 课程设计(论文) 设计(论文)题目:基于DCT的图像压缩及Matlab实现 姓名____ 学号_ 班级_ 学院____ 指导教师____ 2010年12月31日

太原科技大学课程设计(论文)任务书 学院(直属系):时间: 学生姓名指导教师 设计(论文)题目基于DCT的图像压缩及Matlab实现 主要研究内容 掌握DCT变换实现图像压缩的基本方法,在不损害图像信源的有效信息量的情况下保证图像的质量,在MATLAB环境中进行图像压缩技术的仿真,并对仿真结果进行分析。 研究方法 主要运用实验法与观察法,通过编写程序实现对图像的DCT变换,观察图像结果进而实现对DCT变换的研究。 主要技术指标(或研究目标) 利用DCT变换编码方法进行图像压缩,提高信息传输的有效性及通信质量。 教研室 意见 教研室主任(专业负责人)签字:年月日

目录 摘要.............................................................................................................................................II 第1章绪论. (1) 第2章DCT变换概述 (2) 2.1DCT函数介绍 (2) 2.2DCT变换介绍 (2) 2.2.1DCT变换原理 (2) 2.2.2DCT变换编码的步骤 (3) 第3章程序运行及结果分析 (5) 3.1程序代码 (5) 3.2运行结果分析 (7) 第4章结论 (11) 参考文献 (12)

最常用的matlab图像处理的源代码

最常用的一些图像处理Matlab源代 码 #1:数字图像矩阵数据的显示及其傅立叶变换 #2:二维离散余弦变换的图像压缩 #3:采用灰度变换的方法增强图像的对比度 #4:直方图均匀化 #5:模拟图像受高斯白噪声和椒盐噪声的影响 #6:采用二维中值滤波函数medfilt2对受椒盐噪声干扰的图像滤波 #7:采用MATLAB中的函数filter2对受噪声干扰的图像进行均值滤波 #8:图像的自适应魏纳滤波 #9:运用5种不同的梯度增强法进行图像锐化 #10:图像的高通滤波和掩模处理 #11:利用巴特沃斯(Butterworth)低通滤波器对受噪声干扰的图像进行平滑处理 #12:利用巴特沃斯(Butterworth)高通滤波器对受噪声干扰的图像进行平滑处理 1.数字图像矩阵数据的显示及其傅立叶变换 f=zeros(30,30); f(5:24,13:17)=1; imshow(f, 'notruesize'); F=fft2(f,256,256); % 快速傅立叶变换算法只能处矩阵维数为2的幂次,f矩阵不 % 是,通过对f矩阵进行零填充来调整 F2=fftshift(F); % 一般在计算图形函数的傅立叶变换时,坐标原点在 % 函数图形的中心位置处,而计算机在对图像执行傅立叶变换 % 时是以图像的左上角为坐标原点。所以使用函数fftshift进 %行修正,使变换后的直流分量位于图形的中心; figure,imshow(log(abs(F2)),[-1 5],'notruesize');

2 二维离散余弦变换的图像压缩I=imread('cameraman.tif'); % MATLAB自带的图像imshow(I); clear;close all I=imread('cameraman.tif'); imshow(I); I=im2double(I); T=dctmtx(8); B=blkproc(I,[8 8], 'P1*x*P2',T,T'); Mask=[1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]; B2=blkproc(B,[8 8],'P1.*x',Mask); % 此处为点乘(.*) I2=blkproc(B2,[8 8], 'P1*x*P2',T',T); figure,imshow(I2); % 重建后的图像 3.采用灰度变换的方法增强图像的对比度I=imread('rice.tif'); imshow(I); figure,imhist(I); J=imadjust(I,[0.15 0.9], [0 1]); figure,imshow(J); figure,imhist(J);

一种基于MATLAB的JPEG图像压缩具体实现方法

一种基于MATLAB的JPEG图像压缩具体实现方法 说明:该方法主要是对FPGA硬件实现编码的一个验证,MATLAB处理时尽量选择了简单化和接近硬件实现需要。 JPEG编码解码流程:BMP图像输入、8*8分块、DCT变换、量化、Zig_Zag 扫描、获取DC/AC系数中间格式、Huffman熵编码、DC/AC系数Huffman熵解码,反zig_zag扫描、反量化、反DCT变换、8*8组合、解码图像显示。 下面根据具体代码解释实现过程。 1.BMP图像输入 A=imread('messi_b.bmp'); %读取BMP图像矩阵 R=int16(A(:,:,1))-128; %读取RGB矩阵,由于DCT时输入为正负输入, G=int16(A(:,:,2))-128; %使得数据分布围-127——127 B=int16(A(:,:,3))-128; 通过imread函数获取BMP图像的R、G、B三原色矩阵,因为下一步做DCT 转换,二DCT函数要求输入为正负值,所以减去128,使得像素点分布围变为-127~127,函数默认矩阵A的元素为无符号型(uint8),所以如果直接相减差值为负时会截取为0,所以先用int16将像素点的值转为带符号整数。网上很多都提到了第一步的YUV转换,但是由于MATLAB在实验时YUV转换后色差失真比较严重,这里没有进行YUV转换。个人理解为YUV转换后经过非R/G/B原理显示器显示效果可能会比较好,或者如果图像有色差可以选择YUV调整。为了方便,读入的图像像素为400*296,是8*8的50*37倍,所以代码里没有进行8*8的整数倍调整。 2. 8*8分块 R_8_8=R(1:8,1:8);%取出一个8*8块 这里以R色压缩解码为例,后边解释均为R色编码解码过程,最后附全部代码。R_8_8为: 3.DCT变换 R_DCT=dct2(R_8_8); 使用MATLAB函数dct2进行DCT变换,也可使用DCT变换矩阵相乘的方法,即R_DCT=A* R_8_8*A T,其中A为DCT变换矩阵。R_DCT为:

一种基于MATLAB的JPEG图像压缩具体实现方法

一种基于MATLAB的JPEG图像压缩具体实现方法说明:该方法主要是对FPGA硬件实现编码的一个验证,MATLAB处理时尽量选择了简单化和接近硬件实现需要。 JPEG编码解码流程:BMP图像输入、8*8分块、DCT变换、量化、Zig_Zag 扫描、获取DC/AC系数中间格式、Huffman熵编码、DC/AC系数Huffman熵解码,反zig_zag扫描、反量化、反DCT变换、8*8组合、解码图像显示。 下面根据具体代码解释实现过程。 1.BMP图像输入 A=imread('messi_b.bmp'); %读取BMP图像矩阵 R=int16(A(:,:,1))-128; %读取RGB矩阵,由于DCT时输入为正负输入,G=int16(A(:,:,2))-128;%使得数据分布范围-127——127 B=int16(A(:,:,3))-128; 通过imread函数获取BMP图像的R、G、B三原色矩阵,因为下一步做DCT 转换,二DCT函数要求输入为正负值,所以减去128,使得像素点分布范围变为-127~127,函数默认矩阵A的元素为无符号型(uint8),所以如果直接相减差值为负时会截取为0,所以先用int16将像素点的值转为带符号整数。网上很多都提到了第一步的YUV转换,但是由于MATLAB在实验时YUV转换后色差失真比较严重,这里没有进行YUV转换。个人理解为YUV转换后经过非R/G/B原理显示器显示效果可能会比较好,或者如果图像有色差可以选择YUV调整。为了方便,读入的图像像素为400*296,是8*8的50*37倍,所以代码里没有进行8*8的整数倍调整。 2.8*8分块 R_8_8=R(1:8,1:8);%取出一个8*8块 这里以R色压缩解码为例,后边解释均为R色编码解码过程,最后附全部代码。R_8_8为: 3.DCT变换 R_DCT=dct2(R_8_8); 使用MATLAB函数dct2进行DCT变换,也可使用DCT变换矩阵相乘的方法,即R_DCT=A*R_8_8*A T,其中A为DCT变换矩阵。R_DCT为:

基于MAtlab图像压缩编码

数字图像处理 题目基于LBG算法的矢量量化 图像压缩编码实验 院(系)名称 专业名称 学生姓名 学生学号 指导教师 2012年5月15日 摘要 在航天、军事、气象、医学、多媒体等领域中经常需要大量存储和传输各种静态图像和视频图像。为了提高传输效率和减少存储空

间,必须采取有效的压缩编码算法消除图像中所包含的各种冗余信息并在给定的失真条件下使用尽量少的比特数来描述图像。要想得到好的性能编码,仅采用标量量化是不可能的,而矢量量化(VQ)作为一种高效的数据压缩技术,其突出优点是压缩比大以及解码算法简单,已被广泛应用于图像压缩领域。本实验采用LBG算法得图像压缩所需要的码书,通过码书实现图像压缩编码。大量实验结果表明:LBG算法对初始码书依赖性大,对于给定的码字大小,码书越大,压缩比越低,但重建图像质量越好;码书相同时码字较小的编码性能较优。 关键字:矢量量化(VQ)、LBG算法、码书、压缩比、码字

一、实验原理 矢量量化: 当把多个信源符号联合起来形成多维矢量,再对矢量进行标量量化时自由度将更大,同样的失真下,量化基数可进一步减少,码率可进一步压缩。这种量化叫矢量量化。 LGB 算法: 一种有效和直观的矢量量化码书设计算法——LBG 算法(也叫GLA 算法)是由Linde 、Buzo 和Gray 于1980年首先提出来的。该算法基于最佳矢量量化器设计的最佳划分和最佳码书这两个必要条件,且是Lloyd 算法在矢量空间的推广,其特点为物理概念清晰、算法理论严密及算法实现容易。 针对训练矢量集为{}110,,,-=M x x x X ,其LBG 算法的具体步骤如下: 步骤1:给定初始码书{}) 0(1)0(1)0(0)0(,,,-=N y y y C ,令迭代次数 0=n ,均失真∞→-)1(D ,给定相对误差门限)10(<<εε。 步骤2:用码书)(n C 中的各码字作为质心,根据最佳划分原则把训 练矢量集X 划分为N 个胞腔{}) (1)(1)(0)(,,,n N n n n S S S S -= ,)(n i S 满足 {} X v y v d y v d v S n j N j n i n i ∈==-≤≤ ),,(min ),(|)(1 0)()( 步骤3:计算平均失真 ∑ -=-≤≤=1 )(1 0) (),(min 1M i n j i N j n y x d M D 判断相对误差是否满足 ε≤--)()()1(/)(n n n D D D 若满足,则停止算法,码书)(n C 就是所求的码书。否则,转步骤4。

基于MATLAB 的图像压缩处理其实现

基于MATLAB 的图像压缩处理及其实现 一.图像压缩的概念 从实质上来说,图像压缩就是通过一定的规则及方法对数字图像的原始数据进行组合和变换,以达到用最少的数据传输最大的信息。 二.图像压缩的基本原理 图像数据之所以能被压缩,就是因为数据中存在着大量冗余信息,另外还有相当数量的不相干信息,这为数据压缩技术提供了可能。 数据压缩技术就是利用数据固有的冗余性和不相干性,将一个大的数据文件转化成较小的文件,图像技术压缩就是要去掉数据的冗余性。 图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。 由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。

三.图像的编码质量评价 在图像编码中,编码质量是一个非常重要的概念,怎么样以尽可能少的比特数来存储或传输一幅图像,同时又让接收者感到满意,这是图像编码的目标。对于有失真的压缩算法,应该有一个评价准则,用来对压缩后解码图像质量进行评价。常用的评价准则有两种:一种是客观评价准则;另一种是主观评价准则。主观质量评价是指由一批观察者对编码图像进行观察并打分,然后综合所有人的评价结果,给出图像的质量评价。而对于客观质量评价,传统的编码方法是基于最小均方误差(MSE)和峰值信燥比(PSNR)准则的编码方法,其定义如下 MSE= (1) PSNR=101g( (2) 式中:Nx,Nr图像在x方向和Y方向的像素数,f(i,j)——原图像像素的灰度值,f(i,j)--处理后图像像素的灰度值。对于主观质量,客观质量评价能够快速有效地评价编码图像的质量,但符合客观质量评价标准的图像不一定具有较好的主观质量,原因是均方误差只是从总体上反映原始图像和压缩图像的差别,但对图像中的所有像点同等对待,因此并不能反映局部和人眼的视觉特性。对于图像信号,人眼是最终的信号接受者,因此在压缩时不仅要以MSE作为评价标准,还应当考虑到人的主观视觉特性。

清华大学高等数值计算(李津)实践题目二(SVD计算及图像压缩)(包含matlab代码)

第1部分 方法介绍 奇异值分解(SVD )定理: 设m n A R ?∈,则存在正交矩阵m m V R ?∈和n n U R ?∈,使得 T O A V U O O ∑??=?? ?? 其中12(,, ,)r diag σσσ∑=,而且120r σσσ≥≥≥>,(1,2, ,)i i r σ=称为A 的 奇异值,V 的第i 列称为A 的左奇异向量,U 的第i 列称为A 的右奇异向量。 注:不失一般性,可以假设m n ≥,(对于m n <的情况,可以先对A 转置,然后进行SVD 分解,最后对所得的SVD 分解式进行转置,就可以得到原来的SVD 分解式) 方法1:传统的SVD 算法 主要思想: 设()m n A R m n ?∈≥,先将A 二对角化,即构造正交矩阵1U 和1V 使得 110T B n U AV m n ?? =?? -?? 其中1200n n B δγγδ??? ???=?????? 然后,对三角矩阵T T B B =进行带Wilkinson 位移的对称QR 迭代得到:T B P BQ =。 当某个0i γ=时,B 具有形状12B O B O B ?? =? ??? ,此时可以将B 的奇异值问题分解为两个低阶二对角阵的奇异值分解问题;而当某个0i δ=时,可以适当选取'Given s 变换,使得第i 行元素全为零的二对角阵,因此,此时也可以将B 约化为两个低 阶二对角阵的奇异值分解问题。 在实际计算时,当i B δε∞≤或者() 1j j j γεδδ-≤+(这里ε是一个略大于机器精度的正数)时,就将i δ或者i γ视作零,就可以将B 分解为两个低阶二对角阵的奇异值分解问题。

基于小波包的图像压缩及matlab实现

基于小波包的图像压缩及matlab实现 摘要:小波包分析理论作为新的时频分析工具,在信号分析和处理中得到了很好的应用,它在信号处理、模式识别、图像分析、数据压缩、语音识别与合成等等许多方面都取得了很有意义的研究成果。平面图像可以看成是二维信号,因此,小波包分析很自然地应用到了图像处理领域,如在图像的压缩编码、图像消噪、图像增强以及图像融合等方面都很好的应用。本文将对小波包分析在图像处理中的应用作以简单介绍。 关键词:小波包图像处理消噪 1.小波包基本理论 1.1 小波包用于图像消噪 图像在采集、传输等过程中,经常受到一些外部环境的影响,从而产生噪声使得图像发生降质,图像消噪的目的就是从所得到的降质图像中去除噪声还原原始图像。图像降噪是图像预处理中一项应用比较广泛的技术,其作用是为了提高图像的信噪比突出图像的期望特征。图像降噪方法有时域和频域两种方法。频率域方法主要是根据图像像素噪声频率范围,选取适当的频域带通过滤波器进行滤波处理,比如采用Fourier变换(快速算法FFT)分析或小波变换(快速算法Mallat 算法)分析。空间域方法主要采用各种平滑函数对图像进行卷积处理,以达到去除噪声的目的,如邻域平均、中值(Median)滤波等都属于这一类方法。还有建立在统计基础上的lee滤波、Kuan滤波等。但是归根到底都是利用噪声和信号在频域上分布不同进行的:信号主要分布在低频区域。而噪声主要分布在高频区域,但同时图像的细节也分布在高频区域。所以,图像降噪的一个两难问题就是如何在降低图像噪声和保留图像细节上保持平衡,传统的低通滤波方法将图像的高频部分滤除,虽然能够达到降低噪声的效果,但破坏了图像细节。如何构造一种既能够降低图像噪声,又能保持图像细节的降噪方法成为此项研究的主题。在小波变换这种有力工具出现之后,这一目标已经成为可能。 基于小波包变换消噪方法的主要思想就是利用小波分析的多尺度特性,首先对含有噪声的图像进行小波变换,然后对得到的小波系数进行阈值化处理,得到

基于DCT的图像压缩编码算法的MATLAB实现.

摘要 摘要 随着科学技术的发展,图像压缩技术越来越引起人们的关注。为此从众多的图像压缩编码标准中选取了基于DCT变换的JPEG图像压缩编码算法进行研究,并通过对比分析各种软件特性选取了MATLAB进行实验仿真。 首先说明了图像压缩在现代通信中的必要性和可行性,然后讲述了MATLAB及其图像处理工具箱的相关知识,并对基于DCT变换的JPEG图像压缩算法进行了详细的研究,重点介绍了JPEG压缩编码的具体过程和方法 ,详细介绍了编码中DCT变换、量化、熵编码和霍夫曼编码等模块的原理和数学推导以及各模块的功能分析。最后应用MATLAB进行了实验仿真并分析结果得出结论。 实验结果表明基于DCT变换的JPEG图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。 关键词JPEG图像压缩;DCT;MATLAB;图像处理工具箱

目录 摘要........................................................................................................................ I Abstract ............................................................................... 错误!未定义书签。第1章绪论. (1) 1.1课题背景 (1) 1.1.1 离散余弦变换 (2) 1.1.2 预测技术 (3) 1.2图像压缩技术的发展和现状 (3) 1.2.1 图像编码技术发展历史 (3) 1.2.2 图像编码技术的现状 (4) 1.3MATLAB及其图像处理工具箱 (4) 1.4论文组织结构 (5) 第2章图像压缩编码理论算法 (6) 2.1DCT变换的思想来源 (6) 2.2基于DCT的JPEG图像压缩编码步骤 (8) 2.2.1 颜色空间的转换和采样 (8) 2.2.2 二维离散余弦变换 (9) 2.2.3 DCT系数的量化 (12) 2.2.4 量化系数的编排 (13) 2.2.5 DC系数的编码 (14) 2.2.6 AC系数的编码 (15) 2.2.7 组成位数据流 (16) 2.2.8 DCT变换在图像压缩中的应用 (19) 2.3JPEG2000压缩算法 (19) 2.3.1 小波变换 (20) 2.3.2 (20) 2.3.3 (21) 2.3.4 (21)

基于DCT变换的图像压缩及matlab仿真

院(系、所)信息与机电学院专业通信与信息系统考试科目数字压缩第三学期研究生姓名张鹏学号 122201115

考试成绩 导师评语: 导师签字 年月日 摘要 图像压缩是关于用最少的数据量来表示尽可能多的原图像的信息的一个过程。对于图像来说,如果需要进行快速或实时传输以及大量存储,就需要对图像数据进行压缩,如果图像数据压缩后再传输,就可以传输更多的图像信息,也就可以增加通信的能力。变换编码是把图像中的各个像素从一种空间变换到另一种空间.然后针对变换后的信号进行量化与编码操作的一种图象压缩编码技术。

本文提出了基于DCT变换的图像压缩编码算法进行研究,并用MATLAB进行实验仿真,重点介绍了压缩编码的具体过程和方法 ,详细介绍了编码中DCT变换、量化、熵编码等模块的原理和数学推导以及各模块的功能分析,基于DCT 变换的图像压缩方法简单、方便,既能保证有较高的压缩比,又能保证有较好的图像质量,应用MATLAB仿真出来的结果较好的反应了其编码算法原理。 关键词:图像压缩 DCT变换 MATLAB Abstract ?? Image compression is a process about the least amount of data to show the original image information as much as possible. For images, if the requirement of high-speed and real-time transmission and a large amount of storage, we need to compress the image data, if the image data compression and transmission, can transmit more information of the image, also can increase the ability of communication. Transform coding is that each pixel in the image from a space to another space. Coding an image and then quantization and coding operation according to the transformed signal. This paper puts forward DCT transform for image compression coding algorithm based on study, and experimental simulation using MATLAB, focuses on process and compression coding method, a detailed analysis of principle and mathematical derivation of the DCT transform coding, quantization, entropy coding module and the function of each module, DCT transform for image the compression method is simple, convenient and based on, which can ensure a higher compression ratio, but also ensure a better image quality, the application of MATLAB simulation results reflect the coding algorithm. Key word:Image compression DCT transform MATLAB 基于DCT变换的图像压缩及matlab仿真 一.图像压缩编码的概念 压缩的理论基础是信息论,从信息论的角度来看,压缩就是去掉信息中的冗

matlab静态图像分割与边缘检测与图像压缩与编码

学号14102500892 光电图像处理实验报告 实验三:静态图像分割与边缘检测 作者肖剑洪专业电子科学与技术学院物理与电子学院指导老师王晓明 完成时间2013.12.2

实验三静态图像分割与边缘检测 一、实验目的 1.学习常用的图像分割与边缘检测方法,并通过实验使学生体会一些主要的分割算子对图像处理的效果,以及各种因素对分割效果的影响; 2.观察图像分割的结果,产生对所讲述理论知识的直观认识,加深对图像分割与边缘检测相关理论知识的理解。 3.掌握常用图象分割及边缘检测方法的算法设计及编程实现; 4.学会使用MATLAB软件中关于图像分割与边缘检测的函数; 二、实验设备 联想图像处理工作站 三、实验内容及要求 1.自己编写M-function实现图像阈值分割算法,要求该程序能对256级灰度图像进行处理,显示处理前、后图像; 2.自己编写M-function实现利用Sobel算子进行图像边缘检测的算法,并对图像进行检测,显示原图像、处理后的图像。 3.调用Matlab自带的图像处理函数,用不同的算子对图像进行分割、边缘检测,比较结果。 4.结合以上实验内容,使用ICETECK-DM642-IDK-M实验系统进行相应的动态视频图像分割及边缘检测,观察结果。 四、实验原理 1.图像分割 图像分割是将图像划分成若干个互不相交的小区域的过程,小区域是某种意义下具有共同属性的像素的连通集合。图像分割有三种不同的途径:区域法、边界法、边缘法。最常用的是灰度阈值化处理进行的图像分割:

(,)(,)255 (,)f x y T g x y f x y T ?=T)和G2(

图像JPEG压缩的matlab实现.

电子科技大学毕业论文 图像JPEG压缩的matlab实现 作者姓名: 专业名称:信息工程 指导教师:讲师

摘要 随着现代经济的发展,影像风暴已经席卷了我们的日常生活,图像对于人们已经息息相关。人们对计算机实时处理图像的要求就相对有所提高。现在我们就面对一个问题,如何在保证图像质量的前提下,同时能够考虑到实时性和高效性就成了一个大家关注的问题。那么对图像数据信息进行必要的压缩,以便能够保证图像的快速存储和传输。但是,我们通常看到的图像是一种重要的二维信号,所以它本身就包含非常庞大的数据量,为了快速存储和实时传输,就必须对图像信息进行相应的压缩处理。新兴的数学工具是局域DCT变换是一种新兴的数学工具,在现在社会中,图像压缩技术现在正受到大量的关注与研究。 本次课题设计在分析近年来,在图像处理领域,对图像压缩普遍方法的基础之上,充分学习和分析了基于DCT变换的图像压缩的相关编码及其基本原理和实现步骤。简单概述了图像压缩的基本原理以及发展现状和方向,全面分析了DCT变换算法以及思路,提出了采用DCT变换压缩的依据和优势。本文同时也介绍了图像压缩过程的重要步骤——编码量的方法和原理。为了方便简单,将使用MATLAB2010实现JPEG图像压缩的仿真。 在论文最后,将介绍仿真的过程以及仿真结果说明,阐述用MATLAB来实现离散余弦变换的图像压缩的基本过程,并总结相关方法的优缺点。同时也将充分展示压缩前后的图像,并做相应的比较。 关键词:图像压缩DCT matlab仿真

Abstract With the development of modern economy, the storm has swept through the image of our daily life, people have been closely related to the image for the. People's requirements on image real-time processing is relatively improved. Now we face a problem, how to guarantee the quality of the image, at the same time can be old enough considering the real-time and efficiency has become an issue of concern. This information is certain to image compression and processing has become a very important link. However, the image is an important signal, due to the large amount of data, while the storage and transmission of the compressed. New mathematical tools are discrete cosine transform is a new mathematical tool, based on the discrete cosine transform image compression technology is now being a lot of attention and research. In this paper, based on the analysis of the general methods of image compression in recent years, the basic principles and implementation steps of image compression based on DCT transform are also discussed. In this paper, the principle and development of image compression are introduced briefly, and the DCT transform algorithm is analyzed and compared with other compression methods. The basis of DCT transform compression is proposed. The final step of the image compression process is to encode the quantized image. This. We use MATLAB6.5 to realize the simulation of JPEG image compression. The simulation results show that using MATLAB to achieve the image discrete cosine transform compression method is simple, fast, small error advantages, greatly improves the efficiency and accuracy of image compression. Keywords: DCT ,matlab,simulation image, compression

JPEG图像压缩Matlab程序

% function ReconImage=func_DCTJPEG(I,q) %% 1.This function tests the DCTJPEG codec %% ReconImage=DCTJPEG(I,q),I为待压缩图像,q为量化因子,ReconImage为解压缩重建图像。 %% 2.This function calls: %% blkproc.m,DCHuffmanEncoding.m,ACHuffmanEncoding.m,zigzag.m,PSNR.m, %% 对灰度图像进行DCT变换,量化,ZigZag扫描,Huffman编解码,反量化,反DCT 变换而重建图像。 %% 其中,blkproc.m为分块DCT变换函数; %% DCHuffmanEncoding.m,ACHuffmanEncoding.m分别为DC和AC变换系数的Huffman码表函数; %% zigzag.m为ZigZag扫描函数;PSNR.m为求图像峰值信噪比函数。 %% Copyright 2008 Reserved @ Wang Chengyou @ Tianjin University, P.R.China. %%******************************************************************* *******************%% %%Test close all;clear all;clc; % fname=input('Please input the bmp image name:','s');%%读一幅bmp灰度图像 % [I,map]=imread(fname,'bmp'); I=imread('lena512.bmp');%%读bmp灰度图像 q=1;%%设定量化因子 OriginalImage=I;Q=q; OriginalImage=double(OriginalImage);%%图像数据类型转换 ImageSub=OriginalImage-128;%%电平平移128 [Row,Col]=size(OriginalImage);%%图像的大小 BlockNumber=Row*Col/64;%%8*8分块数 %% dct2变换:把ImageSub分成8*8像素块,分别进行dct2变换,得变换系数矩阵Coef Coef=blkproc(ImageSub,[8,8],'dct2(x)'); %% 量化:用量化矩阵L量化Coef得CoefAfterQ %% JPEG建议量化矩阵 L=Q*[16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 62 18 22 37 56 68 109 103 77

matlab实现jpeg算法进行图像压缩的源代码

function jpeg %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% THIS WORK IS SUBMITTED BY: %% %% OHAD GAL %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% close all; % ================== % section 1.2 + 1.3 % ================== % the following use of the function: % % plot_bases( base_size,resolution,plot_type ) % % will plot the 64 wanted bases. I will use "zero-padding" for increased resolution % NOTE THAT THESE ARE THE SAME BASES ! % for reference I plot the following 3 graphs: % a) 3D plot with basic resolution (64 plots of 8x8 pixels) using "surf" function % b) 3D plot with x20 resolution (64 plots of 160x160 pixels) using "mesh" function % c) 2D plot with x10 resolution (64 plots of 80x80 pixels) using "mesh" function % d) 2D plot with x10 resolution (64 plots of 80x80 pixels) using "imshow" function % % NOTE: matrix size of pictures (b),(c) and (d), can support higher frequency = higher bases % but I am not asked to draw these (higher bases) in this section ! % the zero padding is used ONLY for resolution increase ! % % get all base pictures (3D surface figure) plot_bases( 8,1,'surf3d' ); % get all base pictures (3D surface figure), x20 resolution plot_bases( 8,20,'mesh3d' ); % get all base pictures (2D mesh figure), x10 resolution plot_bases( 8,10,'mesh2d' ); % get all base pictures (2D mesh figure), x10 resolution plot_bases( 8,10,'gray2d' );

基于MATLAB-的图像压缩处理及其实现

基于MATLAB-的图像压缩处理及其实现

基于MATLAB 的图像压缩处理及其实现 一.图像压缩的概念 从实质上来说,图像压缩就是通过一定的规则及方法对数字图像的原始数据进行组合和变换,以达到用最少的数据传输最大的信息。 二.图像压缩的基本原理 图像数据之所以能被压缩,就是因为数据中存在着大量冗余信息,另外还有相当数量的不相干信息,这为数据压缩技术提供了可能。 数据压缩技术就是利用数据固有的冗余性和不相干性,将一个大的数据文件转化成较小的文件,图像技术压缩就是要去掉数据的冗余性。 图像数据的冗余主要表现为:图像中相邻像素间的相关性引起的空间冗余;图像序列中不同帧之间存在相关性引起的时间冗余;不同彩色平面或频谱带的相关性引起的频谱冗余。 由于图像数据量的庞大,在存储、传输、处理时非常困难,因此图像数据的压缩就显得非常重要。

三.图像的编码质量评价 在图像编码中,编码质量是一个非常重要的概念,怎么样以尽可能少的比特数来存储或传输一幅图像,同时又让接收者感到满意,这是图像编码的目标。对于有失真的压缩算法,应该有一个评价准则,用来对压缩后解码图像质量进行评价。常用的评价准则有两种:一种是客观评价准则;另一种是主观评价准则。主观质量评价是指由一批观察者对编码图像进行观察并打分,然后综合所有人的评价结果,给出图像的质量评价。而对于客观质量评价,传统的编码方法是基于最小均方误差(MSE)和峰值信燥比(PSNR)准则的编码方法,其定义如下 MSE=1 NxNy ∑∑[f(i,j)?f(i,j)]2 Nj j=0 Ni i=0 (1) PSNR=101g(255×255 MSE ) (2) 式中:Nx,Nr图像在x方向和Y方向的像素数,f(i,j)——原图像像素的灰度值,f(i,j)--处理后图像像素的灰度值。对于主观质量,客观质量评价能够快速有效地评价编码图像的质量,但符合客观质量评价标准的图像不一定具有较好的主观质量,原因是均方误差只是从总体上反映原始图像和压缩图像的差别,但对图像中的所有像点同等对待,因此并不能反映局部和人眼的视觉特性。对于图像信号,人眼是最终的信号接受者,因此在压缩时不仅要以MSE作为评价标准,还应当考虑到人的主观视觉特性。

相关文档
相关文档 最新文档