实验五、图像压缩

合集下载

图像压缩实验报告

图像压缩实验报告

竭诚为您提供优质文档/双击可除图像压缩实验报告篇一:实验三图像压缩实验三图像压缩一、实验目的1.理解有损压缩和无损压缩的概念;2.理解图像压缩的主要原则和目的;3.了解几种常用的图像压缩编码方式。

4.利用mATLAb程序进行图像压缩。

二、实验仪器1计算机;2mATLAb等程序;3移动式存储器(软盘、u盘等)。

4记录用的笔、纸。

三、实验原理1.图像压缩原理图像压缩主要目的是为了节省存储空间,增加传输速度。

图像压缩的理想标准是信息丢失最少,压缩比例最大。

不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。

压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。

高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。

编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。

(1).冗余度压缩方法,也称无损压缩、信息保持编码或嫡编码。

具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。

(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。

也就是说解码图像和原始图像是有差别的,允许有一定的失真。

应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:(1)无损压缩编码种类哈夫曼(huffman)编码,算术编码,行程(RLe)编码,Lempelzev编码。

(2)有损压缩编码种类预测编码,Dpcm,运动补偿;频率域方法:正交变换编码(如DcT),子带编码;空间域方法:统计分块编码;模型方法:分形编码,模型基编码;基于重要性:滤波,子采样,比特分配,向量量化;(3)混合编码。

有JbIg,h261,Jpeg,mpeg等技术标准。

JPEG图像压缩实验_百度文库.

JPEG图像压缩实验_百度文库.

JPEG 静态图像压缩实验指导书一、实验目的1. 了解多媒体通信中图像压缩技术2. 熟悉 JPEG 图像压缩编码过程3. 掌握二维 DCT 变换算法二、实验原理JPEG(Joint Photographic Experts Group 是一个由 ISO 和 ITU-T 两个组织机构联合组成的一个图像专家小组,负责制定静态的数字图像数据压缩编码标准, 这个专家组开发的算法称为 JPEG 算法,并且成为国际上通用的标准。

JPEG 是一个适用范围很广的静态图像数据压缩标准, 既可用于灰度图像又可用于彩色图像。

JPEG 不仅适于静止图像的压缩,电视图像的帧内图像的压缩编码,也常采用此算法。

JPEG 标准定义了多种工作模式, 其中最基本的是基于 8×8块的 DCT 顺序编码,将一帧图像分为 8×8的块,然后按照从左至右、自上而下的顺序,对块进行 DCT 、量化和熵编码。

其编、解码框图如下:图 1 基于 DCT 的顺序编码框图DCT 解码器图 2 基于 DCT 的顺序解压缩框图JPEG 压缩编码算法的主要计算步骤:1 正向离散余弦变换 (FDCT。

2 量化 (quantization。

3 Z 字形编码 (zigzag scan。

4 使用差分脉冲编码调制 (differential pulse code modulation, DPCM 对直流系数(DC进行编码。

5 使用行程长度编码 (run-length encoding, RLE 对交流系数 (AC进行编码。

6 熵编码 (entropy coding。

三、实验内容按照上述压缩过程实现一幅图像的压缩,生成符合 JPEG 标准的图像文件 JPEG 图像编码流程如下:图 3 JPEG 图像编码流程1. DCT 变换对 8×8的图像数据块进行二维 DCT 的变换, 把能量集中在少数几个系数上,从而达到数据压缩的目的。

:DCT 变换公式 :DCT 反变换公式:其中:二维 DCT 变换可以分解为行和列的一维 DCT 变换的组合运算, 也可将 8×8的块分为更小的子块,直接对二维数据进行 2维快速余弦变换。

数字图像处理技术-图像压缩

数字图像处理技术-图像压缩

实验六图像压缩课程名称:数字图像处理技术实验日期:2016-11-17班级:姓名:学号:一、实验目的1.了解图像压缩的基本操作;2.掌握行程编码算法、哈夫曼编码算法;3. 掌握边缘检测的Matlab实现方法。

二、实验内容1. 在GUI中,实现灰度图像、彩色图像的行程编码的编码器算法;进一步实现行程编码的解码器算法,并比较原图像和解码图像是否有区别。

2. 在GUI中,实现图像的边缘检测, 比较'roberts','sobel',算子的检测效果。

三、实验代码function axes1_CreateFcn(hObject, eventdata, handles)% hObject handle to axes1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles empty - handles not created until after all CreateFcns called imshow('1.jpg')% Hint: place code in OpeningFcn to populate axes1% --- Executes on button press in pushbutton1.function pushbutton1_Callback(hObject, eventdata, handles)% hObject handle to pushbutton1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)figure;A=imread('1.jpg');image1=rgb2gray(A);subplot(2,2,1);imshow(image1);image2=image1(:);image2length=length(image2);for i=1:1:image2lengthif image2(i)>=127image2(i)=255;elseimage2(i)=0;endendimage3=reshape(image2,320,240);subplot(2,2,2);imshow(image3);X=image3(:);x=1:1:length(X);plot(x,X(x));j=1;image4(1)=1;for z=1:1:(length(X)-1)if X(z)==X(z+1)image4(j)=image4(j)+1;elsedata(j)=X(z);j=j+1;image4(j)=1;endenddata(j)=X(length(X));image4length=length(image4);y=1:1:image4length;plot(y,image4(y));CR=image2length/image4length;l=1;for m=1:image4lengthfor n=1:1:image4(m);rec_image(l)=data(m);l=l+1;endendu=1:1:length(rec_image);plot(u,rec_image(u));rec2_image=reshape(rec_image,320,240);subplot(2,2,3);imshow(rec2_image);% --- Executes on button press in pushbutton2.function pushbutton2_Callback(hObject, eventdata, handles)% hObject handle to pushbutton2 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;clear all;I1=imread('1.jpg');I2=im2bw(I1,0.5);I3=I2(:)';I3len=length(I3);j=1;n=1;for z=1:(I3len-1)if I3(z)==I3(z+1)n=n+1;elsepixel(j)=I3(z);numpixel(j)=n;j=j+1;n=1;endendpixel(j)=I3(z+1);numpixel(j)=n;pixel_len=length(pixel);CR=I3len/pixel_len;disp('压缩比:')disp(CR);disp('原图像数据的长度:')disp(I3len);disp('压缩后图像数据的长度:')disp(pixel_len);% --- Executes on button press in pushbutton3.function pushbutton3_Callback(hObject, eventdata, handles)% hObject handle to pushbutton3 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;A=imread('095.jpg');image1=rgb2gray(A);figure;imshow(image1);image2=image1(:);image2length=length(image2);for i=1:1:image2lengthif image2(i)>=127image2(i)=255;elseimage2(i)=0;endendimage3=reshape(image2,1360,1020);figure;imshow(image3);X=image3(:);x=1:1:length(X);figure;plot(x,X(x));j=1;image4(1)=1;for z=1:1:(length(X)-1)if X(z)==X(z+1)image4(j)=image4(j)+1;elsedata(j)=X(z);j=j+1;image4(j)=1;endenddata(j)=X(length(X));image4length=length(image4);y=1:1:image4length ;figure;plot(y,image4(y));CR=image2length/image4length;l=1;for m=1:image4lengthfor n=1:1:image4(m);rec_image(l)=data(m);l=l+1;endendu=1:1:length(rec_image);figure;plot(u,rec_image(u));rec2_image=reshape(rec_image,1360,1020);figure;imshow(rec2_image);% --- Executes on button press in pushbutton4.function pushbutton4_Callback(hObject, eventdata, handles)% hObject handle to pushbutton4 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) figure;A=imread('1.jpg');image1=rgb2gray(A);figure;imshow(image1);image2=image1(:);image2length=length(image2);for i=1:1:image2lengthif image2(i)>=127image2(i)=255;image2(i)=0;endendimage3=reshape(image2,320,240);figure;imshow(image3);X=image3(:);x=1:1:length(X);figure;plot(x,X(x));j=1;image4(1)=1;for z=1:1:(length(X)-1)if X(z)==X(z+1)image4(j)=image4(j)+1;elsedata(j)=X(z);j=j+1;image4(j)=1;endenddata(j)=X(length(X));image4length=length(image4);y=1:1:image4length ;figure;plot(y,image4(y));CR=image2length/image4length;l=1;for m=1:image4lengthfor n=1:1:image4(m);rec_image(l)=data(m);l=l+1;endendu=1:1:length(rec_image);figure;plot(u,rec_image(u));rec2_image=reshape(rec_image,320,240);figure;imshow(rec2_image);% --- Executes on button press in pushbutton4.% --- Executes on button press in pushbutton5.function pushbutton5_Callback(hObject, eventdata, handles)% hObject handle to pushbutton5 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)f=imread('1.jpg');u=rgb2gray(f);F=double(f);U=double(u);[H,W]=size(u);uSobel=u;for i=2:H-1for j=2:W-1Gx=(U(i+1,j-1)+2*U(i+1,j)+F(i+1,j+1))-(U(i-1,j-1)+2*U(i-1,j)+F(i-1,j+ 1));Gy=(U(i-1,j+1)+2*U(i,j+1)+F(i+1,j+1))-(U(i-1,j-1)+2*U(i,j-1)+F(i+1,j-1));uSobel(i,j)=sqrt(Gx^2+Gy^2);endendsubplot(2,2,1);imshow(f);title('原图像');subplot(2,2,4);imshow(im2uint8(uSobel));title('Sobel图像');% --- Executes on button press in pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)figure;I=imread('1.jpg');I1=rgb2gray(I);subplot(2,2,1);imshow(I1);h1=[1 0;0 -1];B1=imfilter(I1,h1);h2=[0 1;-1 0];B2=imfilter(I1,h2);B3=B1+B2;subplot(2,2,4);imshow(B3);title('Roberts图像');四、实验结果截图五、实验体会借鉴老师的代码写,甚是有趣。

医学图像处理实验五

医学图像处理实验五

实验5MATLAB图像压缩处理一、实验目的1掌握图像压缩的基本原理和相关概念,熟练运用MATLAB编程实现对图像压缩相关参数如图像压缩比的计算;2 掌握图像离散余弦变换编码的基本步骤,运用MATLAB编程实现对医学图像的DCT变换编码(压缩)和解码(解压缩);3 通过实践进一步加深对有损压缩和无损压缩实质的理解。

二、实验内容在用户磁盘分区(如G:\)建立名为“Medical Image Compression”的文件夹,将待处理医学图像“skull.tif”拷入其中,并更改MATLAB的当前工作路径为图像所在的目录;1显示图像的大小、计算图像的信息熵(平均信息量)【操作】读入图像“skull.tif”到变量f,利用dir()函数显示原图像文件的大小;计算f的归一化直方图p,利用find()函数找出其中不为零元素的索引后利用下式计算f的信息熵H:【思考题1】原图像占用了多少字节的存储空间?平均每个像素占用了多少字节?经过计算,原图像的信息熵为多少比特?这个数字说明了什么?2对图像进行8×8子图的离散余弦变换【操作】将f直接转换为double类型,利用dctmtx()和blkproc()函数对图像进行8×8子图的离散余弦变换得到F;利用mat2gray()函数将F变换为范围0~1的double类变量Fd,计算Fd的信息熵Hd;【思考题2】Hd与H相比是增大了还是减小了?从信息熵的角度出发,为什么说变换编码能够得到较好的压缩效果?3量化DCT变换后的结果【操作】按照图1所示的量化表,利用量化公式和blkproc()函数对F进行8×8子图量化得到Fq(round函数用于实现数值的四舍五入);利用find()函数计算Fq中数值为0的元素所占的百分比;图1 标准8×8量化表Q【思考题3】Fq中数值为0的元素所占的百分比是多少?这对于接下来的行程编码提供了什么益处?------------------------------------------以下内容选做------------------------------------------- 4对量化后的系数进行行程编码【操作】将Fq变换为int8类型;按照图2所示的扫描路径对Fq的所有8×8子图进行行程编码(可利用提供的行程编码程序rle.m)得到m×2的矩阵R;R每一行的第二个元素代表行程编码中出现的数值,第一个元素代表该数值连续出现的个数;计算行程编码后图像所占的字节大小及压缩比;至此,对图像f的压缩完成。

试验 5 多媒体数据压缩实践 实验报告

试验 5 多媒体数据压缩实践 实验报告

实验五:多媒体数据压缩实践
学号:20087720118_______ 姓名:李丽________ 班级:_一班__
1.实验目的:
1)认识和了解数据压缩的基本原理。

了解不同文件格式的数据量差异。

2)掌握基本的数据格式转换与压缩方法。

2.实验内容
1)转换图像文件格式
试验如图:
打开素材文件
转换图片为JPEG格式
JPEG选项设置
图片转换目标文件夹设置

转换为BMP文件
转换为GIF文件
转换后的文件
2)观察数据量
a)查看选项中个图片的详细资料
TIF文件:
JPG文件:
BMP文件:
GIF文件:
b)观察可知,各个图片的数据量大小不同,TIF与BMP文件的数据量相同,最大,jpg文
件其次,gif文件数据量最小。

3.思考题
1)四种文件格式的颜色数量一样吗?
答:BMP与TIF格式的文件颜色数量相同,均为24位颜色,jpg文件为24位颜色,但数据为有损压缩,gif文件为8位颜色。

2)分析文件数据量产生差异的原因。

数字图像处理 图像压缩

数字图像处理 图像压缩

实验报告实验名称实验二图像压缩课程名称数字图像处理A姓名成绩班级学号日期地点(1)掌握离散余弦变换DCT的实现方法,了解DCT的幅度分布特性,从而加深对DCT 变换的认识;(2)掌握图像DCT变换编码的实现方法,从而加深对变换编码压缩图像原理的理解;(3)使用DCT变换编码编写程序实现图像压缩;2.实验环境(软件条件)Windws2000/XPMATLAB 7.03.实验方法根据如图2.1所示的典型变换编码系统,采用DCT变换对256×256大小、256级灰度的数字图像lena.bmp(如图2.2所示)进行如下处理:图2.1 典型变换编码系统图2.2 实验图像lena.bmp(1)对图像进行8×8分块处理并作DCT变换,观察图像8×8子块的DCT系数的分布,并分析其特点;(2)对DCT系数进行量化及反量化处理,求反量化系数的逆DCT变换,重新显示重建图像、误差图像和误差图像的直方图;(3)将量化步长分别增大为初始值的2倍、4倍、8倍后再进行DCT变换编码,显示不同量化步长条件下的重建图像、误差图像以及误差图像的直方图。

分析重建图像质量和量化步长的关系。

结果图原图像经dct 变化的图像对经DCT 变化后的图像进行量化反量化的图像050100150200250200040006000原图像经dct 变化的图像对经DCT 变化后的图像进行量化反量化的图像05010015020025020004000原图像经dct 变化的图像对经DCT 变化后的图像进行量化反量化的图像05010015020025020004000原图像经dct 变化的图像对经DCT 变化后的图像进行量化反量化的图像050100150200250200040005.实验结论结果图离散余弦变换的变换核为余弦函数。

余弦变换除了具有一般的正交变换性质外,它的变换矩阵的基向量能较好的描述图像信号和人类语音信号的相关特征,因此被应用与图像压缩编码的语音信号处理等领域。

图像压缩综合实验

图像压缩综合实验

第 4 页
《网络通信实验与设计》实验报告
end end accof=jacenc(acseq); disp(['DC coefficient after Huffman coding has ' int2str(length(dccof)) ... ' bits']); disp(['AC coefficient after Huffman coding has ' int2str(length(accof)) ... ' bits']); disp(['Compression Rate ' num2str((length(dccof)+length(accof))/(mb*nb*64)) ' Bits / pixel ']) disp(['Compression Ratio ' num2str(8/((length(dccof)+length(accof))/(mb*nb*64))) ' : 1']) 实验结果截图: 原图像: Q=10 的量化编码图像: 阈值编码图像:
实 验 结 果 整 理 及 分 析
结果分析: 由结果截图可看出,编码后的图像相对于原图像都稍显模糊,且阈值编码与量 化编码所得图像也有不同之处,阈值编码时有些点出编码时取为 0,而量化编码 时却不取为 0。 压缩后图像稍有失真。压缩比为:8.9124 : 1 结 论 及 心 得 体 会
本次实验达到了实验目的,进一步熟悉了 DCT 的概念和原理;掌握了对灰度和 彩色图像作离散余弦变换和反变换的方法;可以选择适当的量化间隔、阈值和区 域进行编码;实现了 JPEG 压缩编码。 非常感谢老师的指导。

图像压缩试验

图像压缩试验

B2=blkproc(B,[8 8],'P1.*x',mask); %这里mask是参数P1的取值 % 这里可以对B2作进一步的处理,然后加以存储, 解码时先读出存储的数据,然后恢复出B2. I2=blkproc(B2,[8 8],'P1*x*P2',T',T); subplot(1,2,1); imshow(I);title('原图'); subplot(1,2,2); imshow(I2);title('解压缩图');
2N cos 2N
x 0,1,, N 1 y 0,1,, N 1

其中:
c(u )
1 N 2 N
u0 u 1, 2, N
c (v )
1 N 2 N
v0 v 1, 2, N 1

在MATLAB中, (u )c(v) F (u, v) cos c
(2 x 1)u
2N
cos
(2 y 1)v
2N
称为离散函数的基础函数。DCT系数 F (u, v) 可当作 应用于每个函数的权值。
MATLAB图像处理工具箱提供了一下函数进行DCT 变换。 函数dct2实现图像的二维离散余弦变换,语法格式: B=dct2(A) B=dct2(A,[M,N]) B=dct2(A,M,N)

subplot(1,2,1); imshow(I);title('原图'); subplot(1,2,2); imshow(I2);title('解压缩图');

原图 解压缩图 虽然我们舍弃了85%的DCT系数,也就是减少了 85%的存储量,但可以看到,解压缩图仍然清晰。 在我们现在的实验中,没有进行真正的存储,这部 分需要一些其它的函数配合工作,留待以后进一步 完善。

数字图像处理实验报告图像压缩

数字图像处理实验报告图像压缩

竭诚为您提供优质文档/双击可除数字图像处理实验报告图像压缩篇一:数字图像处理实验报告数字图像处理实验报告课程:班级:学号:姓名:指导老师:日期:实验一内容一mATLAb数字图像处理初步一、实验目的与要求1.熟悉及掌握在mATLAb中能够处理哪些格式图像。

2.熟练掌握在mATLAb中如何读取图像。

3.掌握如何利用mATLAb来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在mATLAb中按照指定要求存储一幅图像的方法。

5.图像间如何转化。

二、实验内容及步骤1.利用imread()函数读取一幅图像,假设其名为flower.tif,存入一个数组中;解:读取图像,存入数组I 中:I=imread(flower.tif);2.利用whos命令提取该读入图像flower.tif的基本信息;解:查询数组I的信息:3.利用imshow()函数来显示这幅图像;解:因为imshow()方法不能直接显示tif图像矩阵,因此要先转换成Rgb模式,再调用imshow()显示。

代码如下:>>I1=I(:,:,1);>>I2=I(:,:,2);>>I3=I(:,:,3);>>Rgb=cat(3,I1,I2,I3);>>imshow(Rgb);显示的图像为:4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;解:代码如下:>>imfinfo(flower.tif)结果截图:5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q),q取0-100。

解:代码:>>imwrite(Rgb,flower.jpg,quality,80);结果截图:6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flower.bmp。

医学图像处理实验五

医学图像处理实验五
[zip,info]=xcbm(I);%编码
unzip=dxcbm(zip,info);%解码
%显示原始图像和经编码解码后的图像,显示压缩比
subplot(1,2,1);imshow(I);
xlabel('原始图像');
subplot(1,2,2);imshow(unzip);
xlabel('行程编码');
《医学图像处理》实验报告
实验五医学图像压缩
专业班级
成绩
学号
评阅人
姓名
一、实验目的
1、掌握医学图像压缩编码的原理和基本方法;
2、掌握算术编码的原理及实现方法;
3、掌握行程编码的原理及实现方法。
二、实验内容及结果
1、算术编码
新建一个名称为ssbm.m的Matlab脚本文件。输入以下代码:
function ssbm(str)
'本示例只限定少数字符串;'
'本示例只说明一下算术编码的过程。'}
disp(about);
%程序限定字符为:a,b,c,d,e
p=[0.2 0.3 0.1 0.15 0.25];
%字符的概率分布,sum(p)=1
n=length(str);disp('a b c d e');disp(num2str(p));
disp(strr);disp(r);d=r-l;end
在Matlab命令行窗口输入:
>>ssbm(‘aedbeecead’)
观察运行结果。改变输入参数,观察并对比运行结果的变化。
实验结果:
a b c d e
0.2 0.3 0.1 0.15 0.25

数字图像处理实验5 图像压缩

数字图像处理实验5 图像压缩

实验5 图像压缩一.实验目的:1.掌握图像压缩的原理——编码冗余,压缩比C R的计算等。

2.了解并掌握霍夫曼编码的原理、实现步骤。

3.掌握JPEG标准——通用的图像压缩/解压缩编码标准。

二.实验内容:1.利用已给出的MATLAB自编函数库matlab_function文件夹,实现压缩比的计算。

2.对信号源符进行霍夫曼编码,以消除信源的冗余数据。

3.练习JPEG标准的压缩/解压缩技术。

三.实验原理:1.图像压缩比C R的计算函数imratio(f1, f2),计算图像压缩比C R,该函数来自MATLAB自编函数库matlab_function文件夹,语法如下:imratio(imread(‘filename’), ‘filename.jpg’)//第二个参数‘filename.jpg’仅是文件名,实际上是一个结构,内含压缩//后的各种压缩信息,并不代表图像本身>>f = imread(‘E:\医学图像处理实验讲义\实验五\car_lady.jpg’)>>imfinfo E:\医学图像处理实验讲义\实验五\car_lady.jpg//查看图像文件的详细信息>>imwrite(f, ‘car_lady25.jpg’, ‘quality’, 25)//将压缩后的图像存到MATLAB默认路径中>>imfinfo car_lady25.jpg//可依据图像信息计算出压缩率>>f25 = imread(‘car_lady25.jpg’)>>Cr = imratio (f25, ‘car_lady25.jpg’)2.霍夫曼编码符号概率a1 0.1875a2 0.5a3 0.125a4 0.1875函数huffman(p)进行霍夫曼编码,语法:huffman(p) //p为向量符号>>p = [0.1875 0.5 0.125 0.1875]>>c = huffman(p)使用函数mat2huff(‘filename’)对图像进行编码,验证霍夫曼编码压缩的性能。

数字图像处理实验报告图像压缩

数字图像处理实验报告图像压缩

数字图像处理实验报告图像压缩竭诚为您提供优质文档/双击可除数字图像处理实验报告图像压缩篇一:数字图像处理实验报告数字图像处理实验报告课程:班级:学号:姓名:指导老师:日期:实验一内容一mATLAb数字图像处理初步一、实验目的与要求1.熟悉及掌握在mATLAb中能够处理哪些格式图像。

2.熟练掌握在mATLAb中如何读取图像。

3.掌握如何利用mATLAb来获取图像的大小、颜色、高度、宽度等等相关信息。

4.掌握如何在mATLAb中按照指定要求存储一幅图像的方法。

5.图像间如何转化。

二、实验内容及步骤1.利用imread()函数读取一幅图像,假设其名为flower.tif,存入一个数组中;解:读取图像,存入数组I 中:I=imread(flower.tif);2.利用whos命令提取该读入图像flower.tif的基本信息;解:查询数组I的信息:3.利用imshow()函数来显示这幅图像;解:因为imshow()方法不能直接显示tif图像矩阵,因此要先转换成Rgb模式,再调用imshow()显示。

代码如下:>>I1=I(:,:,1);>>I2=I(:,:,2);>>I3=I(:,:,3);>>Rgb=cat(3,I1,I2,I3);>>imshow(Rgb);显示的图像为:4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;解:代码如下:>>imfinfo(flower.tif)结果截图:5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为flower.jpg;语法:imwrite(原图像,新图像,‘quality’,q),q取0-100。

解:代码:>>imwrite(Rgb,flower.jpg,quality,80);结果截图:6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp 图像,设为flower.bmp。

图像压缩算法技术实验研究报告

图像压缩算法技术实验研究报告

图像压缩算法技术实验研究报告一、设计内容及研究意义设计的内容:本论文的主要研究内容是图像压缩技术。

具体框架是首先介绍了图像压缩的基本原理以及其相关压缩方法分类等理论知识,并且说明了对图像进行压缩的必要性与重要性,然后针对目前图像压缩现状和发展趋势,着重介绍了小波变换,并以其为基础来进行数字图像的压缩处理,这也许会成为图像数据压缩的主要技术之一。

接着又根据相关知识编写了一些简单的图像处理程序,对前面的理论进行试验、分析、论证。

最后,对整篇论文进行总结,发现自身研究的不足,并展望其未来发展前景研究意义:图像信息给人们以直观、生动的形象,正成为人们获取外部信息的重要途径。

然而,数字图像具有极大的数据量,在目前的计算机系统的条件下,要想实时处理,若图像信息不经过压缩,则会占用信道宽,是传输成本变得昂贵,传输速率变慢。

这对图像存储、传输及使用都非常不利,同时也阻碍了人们对图像的有效获取和使用。

另外,伴随着计算机科学技术的发展,图像压缩技术在通信系统和多媒体系统中的重要性也越来越高,在我们的学习、生产、生活以及国防事物中等的作用越来越显著。

为此,人们给予了图像压缩技术广泛的关注,如何用尽量少的数据量来表示图像信息,即对图像进行压缩,越来越成为图像研究领域的重点课题。

二、设计研究现状和发展趋势研究现状:第一代图像压缩编码的研究工作是从上个世纪50年代提出电视信号数字后开始的,至今己有60多年的历史。

主要是基于信息论的编码方法,压缩比小。

1966年J.B.Neal 对比分析了差分编码调制(DPCM)和脉冲编码调制(PCM)并提出了用于电视的实验数据,1969行了线性预测编码的实际实验。

同年举行首届图像编码会(PictureCodiSymP0sium),在这次会议之后,图像压缩编码算法的研究有了很大进展。

由于DCT压缩算法具有编码效果较好、运算复杂度适中等优点,目前己经成为国际图像编准(JPEG)的核心算法。

为了克服第一代图像压缩编码存在的压缩比小、图像复原质量不理想等1985年Kunt等人充分利用人眼视觉特性提出了第二代图像压缩编码的概念。

DIP作业指导书

DIP作业指导书

篇一:dip指导书《数字图像处理》实验指导书实验一、数字图像获取实验二、图像的傅立叶变换实验三、图像增强实验四、图像压缩实验五、图像融合实验一、数字图像获取一、实验目的1掌握使用扫描仪等数字化设备以及计算机获取数字图像的方法; 2修改图像的存储格式。

二、实验原理用扫描仪获取图像也是图像的数字化过程的方法之一。

扫描仪按种类可以分为手持扫描仪,台式扫描仪和滚筒式扫描仪(鼓形扫描仪)。

扫描仪的主要性能指标有x、y方向的分辨率、色彩分辨率(色彩位数)、扫描幅面和接口方式等。

各类扫描仪都标明了它的光学分辨率和最大分辨率。

分辨率的单位是dpi,dpi是英文dot per inch 的缩写,意思是每英寸的像素点数。

扫描仪工作时,首先由光源将光线照在欲输入的图稿上,产生表示图像特征的反射光(反射稿)或透射光(透射稿)。

光学系统采集这些光线,将其聚焦在ccd上,由ccd将光信号转换为电信号,然后由电路部分对这些信号进行a/d转换及处理,产生对应的数字信号输送给计算机。

当机械传动机构在控制电路的控制下,带动装有光学系统和ccd的扫描头与图稿进行相对运动,将图稿全部扫描一遍,一幅完整的图像就输入到计算机中去了。

图1.1扫描仪的工作原理扫描仪扫描图像的步骤是:首先将欲扫描的原稿正面朝下铺在扫描仪的玻璃板上,原稿可以是文字稿件或者图纸照片;然后启动扫描仪驱动程序后,安装在扫描仪内部的可移动光源开始扫描原稿。

为了均匀照亮稿件,扫描仪光源为长条形,并沿y方向扫过整个原稿;照射到原稿上的光线经反射后穿过一个很窄的缝隙,形成沿x方向的光带,又经过一组反光镜,由光学透镜聚焦并进入分光镜,经过棱镜和红绿蓝三色滤色镜得到的rgb 三条彩色光带分别照到各自的ccd上,ccd将rgb光带转变为模拟电子信号,此信号又被a/d 变换器转变为数字电子信号。

至此,反映原稿图像的光信号转变为计算机能够接受的二进制数字电子信号,最后通过串行或者并行等接口送至计算机。

图像处理及JPEG压缩分析实验报告

图像处理及JPEG压缩分析实验报告

计算机多媒体实验报告题目:图像处理及JPEG压缩分析【实验题目】实验一使用ACDSee做图像处理【实验日期】 2014.10.18【实验目的及要求】使用ACDSee 10简体中文版做如下要求的图像处理。

(1)设置图像深度。

(2)更改RGB值和HSL值。

(3)图像格式转换。

【实验环境】ACDSee 10简体中文版【实验步骤】1.设置图像深度可以在“查看器”(可以通过选中图像,右击,在弹出的快捷菜单中选择“查看”命令来打开)中修改图像的色深。

色深是指图像所包含的颜色范围。

通过选择点击【修改】→【更改色深】命令,然后在弹出的级联菜单中选择一个命令,如图2所示。

图2 色深设置提示:图像设置不同的色深决定了图像中像点显示颜色的精度,通常颜色越多,图像越生动、逼真,但是数据量也就越大。

2.更改RGB值和HSL值可以调整图像的红色、绿色以及蓝色(RGB)的颜色值。

这些选项可以保存为预设值以便日后使用。

具体操作步骤如下:(1)在图像上右击,在弹出的快捷菜单中点击【编辑】→【使用编辑器打开】,打开“编辑面板”,如图3所示。

图3 编辑面板(2)在“编辑面板”中选择【颜色】选项,左侧弹出如图4所示的面板,通过对应颜色的修改实现图像的颜色设置。

4.图像格式转换:可以将图像转换成 ACDSee 支持的任何文件格式。

可以单独为每个格式设置选项,指定如何处理多页图像,并自动应用默认转换操作。

具体操作步骤如下:(1)在“浏览器”中,选择一个或多个图像,然后选择【修改】→【转换文件格式】命令,打开如图5所示的“批量转换文件格式”对话框。

图5 “批量转换文件格式”对话框(2)在“批量转换文件格式”对话框中设置输出选项,如图6所示。

图6 批量转换设置输出选项(3)设置多页选项。

并通过【开始转换】按钮完成格式转换,如图7所示。

图7 批量转换设置多页选项【实验二】使用UltraEdit分析图像文件压缩原理【实验日期】 2014.09.27【实验目的及要求】通过实践全面理解已学的相关声音处理方式,主流的发展方向。

图像压缩技术分析

图像压缩技术分析

图像压缩技术分析图像压缩技术分析一、引言随着多媒体技术和通讯技术的不断发展,多媒体娱乐、信息高速公路等不断对信息数据的存储和传输提出了更高的要求,也给现有的有限带宽以严峻的考验,特别是具有庞大数据量的数字图像通信,更难以传输和存储,极大地制约了图像通信的发展,因此图像压缩技术受到了越来越多的关注。

图像压缩的目的就是把原来较大的图像用尽量少的字节表示和传输,并且要求复原图像有较好的质量。

利用图像压缩,可以减轻图像存储和传输的负担,使图像在网络上实现快速传输和实时处理。

图像压缩编码技术可以追溯到1948年提出的电视信号数字化,到今天已经有50多年的历史了。

在此期间出现了很多种图像压缩编码方法,特别是到了80年代后期以后,由于小波变换理论,分形理论,人工神经网络理论,视觉仿真理论的建立,图像压缩技术得到了前所未有的发展,其中分形图像压缩和小波图像压缩是当前研究的热点。

本文对当前最为广泛使用的图像压缩算法进行综述,讨论了它们的优缺点以及发展前景。

二、JPEG压缩负责开发静止图像压缩标准的“联合图片专家组”(Joint Photographic Expert Group,简称JPEG),于1989年1月形成了基于自适应DCT的JPEG技术规范的第一个草案,其后多次修改,至1991年形成ISO10918国际标准草案,并在一年后成为国际标准,简称JPEG标准。

1.JPEG压缩原理及特点JPEG算法中首先对图像进行分块处理,一般分成互不重叠的大小的块,再对每一块进行二维离散余弦变换(DCT)。

变换后的系数基本不相关,且系数矩阵的能量集中在低频区,根据量化表进行量化,量化的结果保留了低频部分的系数,去掉了高频部分的系数。

量化后的系数按zigzag 扫描重新组织,然后进行哈夫曼编码。

JPEG的特点如下:优点:(1)形成了国际标准;(2)具有中端和高端比特率上的良好图像质量。

缺点:(1)由于对图像进行分块,在高压缩比时产生严重的方块效应;(2)系数进行量化,是有损压缩;(3)压缩比不高,小于50。

实验五、图像压缩

实验五、图像压缩

桂林理工大学实验报告班级软件15-1班学号3152012011124 姓名周奎良同组实验者实验名称实验五图像压缩日期2018年11月20 日一、实验目的1.理解有损压缩和无损压缩的概念;2.理解图像压缩的主要原则和目的;3.了解几种常用的图像压缩编码方式。

4.利用MATLAB程序进行图像压缩。

二、实验环境1计算机;2 MA TLAB、Photoshop等程序;3移动式存储器(软盘、U盘等)。

4记录用的笔、纸。

三、实验内容1.图像压缩原理图像压缩主要目的是为了节省存储空间,增加传输速度。

图像压缩的理想标准是信息丢失最少,压缩比例最大。

不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。

压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。

高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。

编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。

(1)冗余度压缩方法,也称无损压缩、信息保持编码或熵编码。

具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。

(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。

也就是说解码图像和原始图像是有差别的,允许有一定的失真。

应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:(1)无损压缩编码种类哈夫曼(Huffman)编码,算术编码,行程(RLE)编码等。

(2)有损压缩编码种类预测编码,DPCM,运动补偿;频率域方法:正交变换编码(如DCT),子带编码;空间域方法:统计分块编码;模型方法:分形编码,模型基编码;基于重要性:滤波,子采样,比特分配,向量量化;(3)混合编码。

图像压缩大作业

图像压缩大作业
通信信道的传输速率下,是无法完成大量多媒体信息实时传输的,因此,为了更 有效的存储、处理和传输这些图像数据,必须对其进行压缩,因此有必要对图像 压缩编码进行研究。
内容简介:首先在第二部分中简单介绍了一些与图像编码有关的基础
知识;在第三部分中对基于DCT变换的JPEG图像压缩算法进行了详细的 分析,重点介绍了JPEG压缩编码的具体过程和方法 ,详细介绍了编码中DCT 变换、量化、熵编码和霍夫曼编码等模块的原理和数学推导以及各模块的功 能分析。最后应用MATLAB进行了实验仿真并分析结果得出结论。
2015-1-15
空间域方法:统计分块编码; 模型方法:分形编码,模型基编码; 基于重要性:滤波,子采样,比特分配,向量量化; (3)混合编码 有JBIG,JPEG,H261,MPEG等技术标准。 6.图像压缩效果的评估
压缩方法的质量经常使用峰值信噪比来衡量,峰值信噪
比用来表示图像有损压缩带来的噪声。但是,观察者的主观 判断也认为是一个重要的、或许是最重要的衡量标准。
频与之相比,就不那么重要了,所以我们可以忽略高频分量,
从而达到压缩的目的。 • 将高频分量去掉,这就要用到量化,它是产生信息损失的
根源。这里的量化操作,就是将某一个值除以量化表中对应的
值。由于量化表左上角的值较小,右下角的值较大,这样就起 到了保持低频分量,抑制高频分量的目的。JPEG使用的颜色是 YUV格式。我们提到过,Y分量代表了亮度信息,UV分量代表了 色差信息。相比而言,Y分量更重要一些。我们可以对Y采用细 量化,对UV采用粗量化,可进一步提高压缩比。所以上面所说 的量化表通常有两张,一张是针对Y的,一张是针对UV的。
2015-1-15

在MATLAB的图像处理工具箱中,可以直接调用dct2和idct2来实现二维离散
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

桂林理工大学实验报告班级软件15-1班学号3152012011124 姓名周奎良同组实验者实验名称实验五图像压缩日期2018年11月20 日一、实验目的1.理解有损压缩和无损压缩的概念;2.理解图像压缩的主要原则和目的;3.了解几种常用的图像压缩编码方式。

4.利用MATLAB程序进行图像压缩。

二、实验环境1计算机;2 MA TLAB、Photoshop等程序;3移动式存储器(软盘、U盘等)。

4记录用的笔、纸。

三、实验内容1.图像压缩原理图像压缩主要目的是为了节省存储空间,增加传输速度。

图像压缩的理想标准是信息丢失最少,压缩比例最大。

不损失图像质量的压缩称为无损压缩,无损压缩不可能达到很高的压缩比;损失图像质量的压缩称为有损压缩,高的压缩比是以牺牲图像质量为代价的。

压缩的实现方法是对图像重新进行编码,希望用更少的数据表示图像。

信息的冗余量有许多种,如空间冗余,时间冗余,结构冗余,知识冗余,视觉冗余等,数据压缩实质上是减少这些冗余量。

高效编码的主要方法是尽可能去除图像中的冗余成分,从而以最小的码元包含最大的图像信息。

编码压缩方法有许多种,从不同的角度出发有不同的分类方法,从信息论角度出发可分为两大类。

(1)冗余度压缩方法,也称无损压缩、信息保持编码或熵编码。

具体说就是解码图像和压缩编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。

(2)信息量压缩方法,也称有损压缩、失真度编码或烟压缩编码。

也就是说解码图像和原始图像是有差别的,允许有一定的失真。

应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分为以下3类:(1)无损压缩编码种类哈夫曼(Huffman)编码,算术编码,行程(RLE)编码等。

(2)有损压缩编码种类预测编码,DPCM,运动补偿;频率域方法:正交变换编码(如DCT),子带编码;空间域方法:统计分块编码;模型方法:分形编码,模型基编码;基于重要性:滤波,子采样,比特分配,向量量化;(3)混合编码。

有JBIG,H261,JPEG,MPEG等技术标准。

本实验主要利用MA TLAB程序进行离散余弦变换(DCT)压缩和行程编码(Run LengthEncoding,RLE)。

1)离散余弦变换(DCT)图像压缩原理离散余弦变换DCT在图像压缩中具有广泛的应用,它是JPEG、MPEG等数据压缩标准的重要数学基础。

和相同图像质量的其他常用文件格式(如GIF(可交换的图像文件格式),TIFF(标签图像文件格式),PCX(图形文件格式))相比,JPEG是目前静态图像中压缩比最高的。

JPEG比其他几种压缩比要高得多,而图像质量都差不多(JPEG处理的图像只有真彩图和灰度图)。

正是由于其高压缩比,使得JPEG被广泛地应用于多媒体和网络程序中。

JPEG 有几种模式,其中最常用的是基于DCT变换的顺序型模式,又称为基本系统(Baseline)。

用DCT压缩图像的过程为:(1)首先将输入图像分解为8×8或16×16的块,然后对每个子块进行二维DCT变换。

(2)将变换后得到的量化的DCT系数进行编码和传送,形成压缩后的图像格式。

用DCT解压的过程为:(1)对每个8×8或16×16块进行二维DCT反变换。

(2)将反变换的矩阵的块合成一个单一的图像。

余弦变换具有把高度相关数据能量集中的趋势,DCT变换后矩阵的能量集中在矩阵的左上角,右下的大多数的DCT系数值非常接近于0。

对于通常的图像来说,舍弃这些接近于0的DCT的系数值,并不会对重构图像的画面质量带来显著的下降。

所以,利用DCT 变换进行图像压缩可以节约大量的存储空间。

压缩应该在最合理地近似原图像的情况下使用最少的系数。

使用系数的多少也决定了压缩比的大小。

在压缩过程的第2步中,可以合理地舍弃一些系数,从而得到压缩的目的。

在压缩过程的第2步,还可以采用RLE和Huffman编码来进一步压缩。

2)行程编码(RLE)原理:例如如下这幅的二值图像,如果采用行程编码可以按如下格式保存其中10和8表示图像的宽和高。

在这个小例子中行程编码并没有起到压缩图像的作用。

这是由于这个图的尺寸过小,当图像尺寸较大时行程编码还是不错的无损压缩方法。

对于灰度图像和二值图像,用行程编码—般都有很高的压缩率。

行程编码方法实现起来很容易,对于具有长重复值的串的压缩编码很有效,例如:对于有大面积的阴影或颜色相同的图像,使用这种方法压缩效果很好。

很多位图文件格式都采用行程编码,如TIFF,PCX,GEM,BMP 等。

3.2实验步骤1.打开计算机,启动MATLAB程序;2.调入一幅BMP格式的数字图像,然后完成下面的实验;3.使用DCT变换完成对该图像的压缩;4.阅读下面的代码,分析该代码所实现的功能。

I=imread('lenna.bmp'); %读入原图像;I = rgb2gray(I);I=im2double(I); %将原图像转为双精度数据类型;T=dctmtx(8); %产生二维DCT变换矩阵B=blkproc(I,[8 8],'P1*x*P2',T,T'); %计算二维DCT,矩阵T及其转置T’是DCT函数P1*x*P2的参数mask=[ 1 1 1 1 0 0 0 01 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0]; %二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个B2=blkproc(B,[8 8],'P1.*x',mask); %只保留DCT变换的10个系数I2= blkproc(B2,[8,8],'P1*x*P2',T',T); %逆DCT,重构图像subplot(1,2,1);imshow(I);title('原图像'); %显示原图像subplot(1,2,2);imshow(I2);title('压缩图像');%显示压缩后的图像。

对比原始图像和压缩后的图像,虽然舍弃了85%的DCT系数,但图像仍然清晰(当然有一些质量损失)5.根据行程(RLE)编码的原理,对一幅灰度图像进行行程编码压缩处理,并输出图像的压缩比。

6.记录和整理实验报告提示:3. 先将彩色图像转换成灰度图(rgb2gray),然后使用dct2 离散余弦变换;idct2 反离散余弦变换实现。

3.3提交实验的原始图像和结果图像:四、心得体会这次实验是一个体验性的实验,主要就是体验各种图像和视频压缩算法的效果,趣味性比较强。

同时也加深了我对这些压缩算法的理解与体会。

1参考代码:I=imread('F:\\program files\\work\\lenna.bmp'); %读入原图像;I1 = rgb2gray(I);I=im2double(I1); %将原图像转为双精度数据类型;T=dctmtx(8); %产生二维DCT变换矩阵B=blkproc(I,[8 8],'P1*x*P2',T,T'); %计算二维DCT,矩阵T及其转置T’是DCT 函数P1*x*P2的参数mask=[ 1 1 1 0 0 0 0 01 1 0 0 0 0 0 01 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 0]; %二值掩膜,用来压缩DCT系数,只留下DCT系数中左上角的10个B2=blkproc(B,[8 8],'P1.*x',mask); %只保留DCT变换的10个系数I2= blkproc(B2,[8,8],'P1*x*P2',T',T); %逆DCT,重构图像subplot(2,2,1);imshow(I);title('原图像'); %显示原图像subplot(2,2,2);imshow(I2);title('压缩图像');%显示压缩后的图像。

对比原始图像和压缩后的图像,虽然舍弃了85%的DCT系数,但图像仍然清晰(当然有一些质量损失)x1 = im2bw(I1, 0.7 );subplot(2,2,3);imshow(x1);[a b]=size(x1);J=[a b];value=x1(1,1);num=0;for i=1:afor j=1:bif x1(i,j)==valuenum=num+1;elseJ=[J num value]; num=1;value=x1(i,j);endendendJ=[J num value ];disp('原图像')whos('x1');disp('压缩图像')whos('J');disp('图像压缩比')disp(a*b/length(J))t2=J(2);K(1:t2)=0;i1=1;j1=1;for i=3:2:length(J)c1=J(i);c2=J(i+1);for j=1:c1K(i1,j1)=c2;j1=j1+1;if j1>t2i1=i1+1;j1=1;endendendsubplot(2,2,4);imshow(K);title(a*b/length(J));。

相关文档
最新文档