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

合集下载

数字图像处理 实验八 图像变换压缩编码

数字图像处理 实验八 图像变换压缩编码

实验八图像变换压缩编码一,实验目的:1,掌握变换压缩编码的原理与方法2,了解有损压缩图像质量评价的指标二,实验条件1,MATLAB软件2,典型的灰度,彩色图像。

三,实验原理1,去除数据冗余度可以有效地压缩数据2,图像编码压缩的主要技术指标:压缩比,客观评价SNR,主观评价四,实验内容1,以DCT变换为例,采用标准亮度量化表,得有损压缩的变换值,计算并显示其直方图2,采用标准量化表将上述变换值反量化回去后用IDCT变换回图像,比较并计算压缩前后图像的差异(MSE,PSNR等)3,根据由1计算得到的直方图试判断采用Huffman编码的平均码长。

五,实验步骤1,以DCT变换为例,采用标准亮度量化表,得有损压缩的变换值,计算并显示其直方图(1)代码如下所示I=imread('a.jpg');J=rgb2gray(I);J=imresize(J,[512 512]);%imshow(J);A=zeros(8,8);B=zeros(512,512);lighttable=... %标准亮度量化表[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,24 35 55 64 81 104 113 92,49 64 78 87 103 121 120 101,72 92 95 98 112 100 103 99];for i=1:64 %用i,j来控制子块for j=1:64for m=(8*(i-1)+1):8*ifor n=(8*(j-1)+1):8*jA(m-(8*(i-1)+1)+1,n-(8*(j-1)+1)+1)=J(m,n);%提取8*8子块endendC1=dct2(A); %对子块进行dct2变换C2=round(C1./lighttable); %将C1进行量化,并取整for p=1:8 %将子块按序存进512*512的矩阵中for q=1:8B(p+8*(i-1),q+8*(j-1))=C2(p,q);endendendendH=zeros(1,256*2-1);for i=1:mfor j=1:nH(B(i,j)+255)=H(B(i,j)+255)+1; %统计各值概率endendX=[-255:255];plot(X,H); %绘制坐标为-255—255的直方图(2)直方图如下所示-300-200-100010020030000.511.522.552,采用标准量化表将上述变换值反量化回去后用IDCT 变换回图像,比较并计算压缩前后图像的差异(MSE ,PSNR 等)(1)代码如下所示for i=1:64 %用i ,j 来控制子块for j=1:64for m=(8*(i-1)+1):8*ifor n=(8*(j-1)+1):8*jA(m-(8*(i-1)+1)+1,n-(8*(j-1)+1)+1)=B(m,n);endendC3=A.*lighttable; %将子块反量化回去C4=idct2(C3); %对C3进行IDCT 变换for p=1:8for q=1:8D(p+8*(i-1),q+8*(j-1))=C4(p,q);endendendendD=uint8(D);subplot(1,2,1),imshow(J);subplot(1,2,2),imshow(D);%计算J 和D 均方根误差e = double(J) - double(D);[m, n] = size(e);MSE = sqrt(sum(sum(e.^2))/(m*n));k = 8;%k为图像是表示地个像素点所用的二进制位数,即位深。

数字图像处理与图像压缩算法研究

数字图像处理与图像压缩算法研究

数字图像处理与图像压缩算法研究第一章引言数字图像处理技术是一门研究如何对图像进行精确分析与处理的学科,而图像压缩算法则是对图像进行编码压缩以减小存储空间和传输带宽的技术。

本章将介绍数字图像处理和图像压缩算法的背景与意义,并给出本文的研究目的和结构。

第二章数字图像处理2.1 数字图像基本概念数字图像是通过采用离散采样和量化方法将连续的光信号转化为离散的数字信号所得到的图像。

在数字图像处理中,需要了解图像的基本概念,如像素、分辨率、灰度等。

2.2 数字图像处理方法数字图像处理方法包括图像增强、图像恢复、图像压缩和图像分析等。

图像增强旨在改善图像的质量,如增加图像的对比度、降噪等。

图像恢复是通过模型和算法对损坏的图像进行修复。

图像压缩是将图像编码成更小的表示形式,以减小存储空间和传输带宽。

图像分析则是通过计算机视觉技术对图像进行理解和分析。

第三章图像压缩算法3.1 图像压缩的原理图像压缩的目标是尽可能地减小图像所占空间,同时保持原始图像的质量。

常见的图像压缩算法可以分为有损压缩和无损压缩两类。

有损压缩算法通过牺牲一定的图像信息来达到更高的压缩比,而无损压缩算法则通过编码技术实现无失真的图像压缩。

3.2 有损压缩算法有损压缩算法中,离散余弦变换(DCT)和小波变换是常用的方法。

离散余弦变换将图像转换到频域,通过量化等方法丢弃一部分高频分量来实现压缩。

小波变换则将图像分解为低频和高频子图像,通过对高频子图像进行量化和编码实现压缩。

3.3 无损压缩算法无损压缩算法中,无损预测编码(Lossless Predictive Coding)和无损图像压缩标准(Lossless Image Compression Standard,简称“LZW”)是常用的方法。

无损预测编码通过预测和编码差值的方式实现无损压缩。

LZW算法则通过建立字典对图像中的像素序列进行编码和解码。

第四章实验与结果分析为验证图像压缩算法的效果,本文选取了一组测试图像,分别采用有损压缩算法和无损压缩算法进行压缩,并进行压缩比、信噪比、图像质量等指标的评估。

数字图像处理中的图像压缩算法研究

数字图像处理中的图像压缩算法研究

数字图像处理中的图像压缩算法研究随着数字媒体技术的不断发展,数字图像处理已经成为了重要的研究领域之一。

在数字图像处理中,图像压缩算法是其中非常重要的一个研究方向。

图像压缩算法的目的是降低图像数据的冗余度,从而可以用更少的存储空间来存储图像数据,同时减少图像数据的传输时间,使得图像在网络传输和存储时具有更好的效果。

图像压缩算法主要分为无损压缩和有损压缩两种类型。

无损压缩能够完全恢复原始图像,而有损压缩则只能以一定的误差恢复原始图像。

根据压缩的方法又可以分为基于熵编码的压缩和基于变换的压缩两种。

基于熵编码的图像压缩算法包括哈夫曼编码、算术编码等方法。

其中,哈夫曼编码是最为常见的一种方法。

哈夫曼编码是一种无损数据压缩算法,通过统计文本中各个字符出现的频率,将出现频率较高的字符用较短的编码表示,出现频率较低的字符用较长的编码表示,从而达到文本压缩的目的。

在图像压缩中,可以将图像分成若干大小不等的块,然后对每个块进行哈夫曼编码压缩,最后将所有块的编码结果拼接起来进行存储。

虽然哈夫曼编码是一种非常高效的压缩算法,但是由于它需要对数据进行全局扫描,因此它的计算时间是比较长的。

基于变换的图像压缩算法包括离散余弦变换(DCT)和离散小波变换(DWT)等方法。

离散余弦变换是一种用于信号处理和数据压缩的重要数学工具,它将时间域的信号转换为频域的信号。

在图像压缩中,我们可以采用DCT将图像分解为多个小块,然后将每个小块的高频分量截掉,只保留低频分量,最后将所有低频分量结果合并起来,从而获得压缩后的图像。

由于DCT算法只需要对数据进行局部变换,因此计算效率比哈夫曼编码高得多。

离散小波变换也是一种用于图像压缩的重要数学工具,它在图像处理中得到广泛应用。

离散小波变换可以将图像分解成一系列小波块,并将高频分量和低频分量分别表示,然后将高频分量舍去,只保留低频分量,最后将所有低频分量结果合并起来,从而实现压缩。

在图像压缩中,DWT的计算速度比DCT更快。

数字图像处理中的图像压缩技术研究

数字图像处理中的图像压缩技术研究

数字图像处理中的图像压缩技术研究数字图像处理是指通过计算机技术对图像进行处理和分析,其中图像压缩技术是数字图像处理领域中的一个重要分支。

图像压缩技术的作用是将图像压缩成较小的数据量,方便图像的传输和存储。

本文将详细介绍数字图像处理中的图像压缩技术的研究。

一、图像压缩的概念图像压缩是指通过一定的技术手段将图像的数据量进行压缩,从而减小图像的体积,达到方便传输和存储的目的。

图像压缩主要分为有损压缩和无损压缩两种方式。

无损压缩是指在压缩图像的同时,不会对图像的质量造成影响,可以完全还原出原始的图像。

而有损压缩则是在压缩图像的过程中,会对图像的质量进行一定程度上的损失,但是压缩后的图像数据量会大大降低。

二、图像压缩技术的应用图像压缩技术在数字图像处理中有着广泛的应用。

首先,在图像的传输和存储过程中,若图像数据量过大,会导致传输时间长和存储空间不足等问题,将图像压缩后可以解决这些问题。

其次,在数字影像处理、电子商务、医学影像、视频会议等领域也有着重要的应用。

三、无损压缩技术1. Run-length Encoding (RLE)Run-length Encoding是一种基于像素行的无损压缩技术,它通过对图像中像素出现的连续长度进行编码来达到压缩图像的目的。

当像素值连续出现时,RLE算法只需要储存一个出现的值和像素值的个数,从而达到降低图像数据量的目的。

2. Huffman encodingHuffman encoding是一种基于概率的无损压缩技术,它可以通过编码表来描述图像中出现的像素。

在Huffman encoding中,出现频率较高的像素会使用较短的编码,而出现频率较低的像素则会使用较长的编码。

四、有损压缩技术1. Discrete Cosine Transform(DCT)DCT是一种基于频域的图像压缩方法,实现图像的有损压缩。

该方法将图像通过预处理分为不同的块,对每个块进行离散余弦变换,从而达到较好的压缩效果。

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

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

实验六图像压缩课程名称:数字图像处理技术实验日期: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图像');四、实验结果截图五、实验体会借鉴老师的代码写,甚是有趣。

《数字图像处理》实验报告

《数字图像处理》实验报告

《数字图像处理》实验报告数字图像处理是一门将图像进行数字化处理的学科,它通过计算机算法和技术手段对图像进行分析、增强、压缩和重建等操作。

在本次实验中,我们学习了数字图像处理的基本概念和常用算法,并通过实验来探索其应用和效果。

首先,我们进行了图像的读取和显示实验。

通过使用Python中的OpenCV库,我们能够轻松地读取图像文件,并将其显示在屏幕上。

这为我们后续的实验奠定了基础。

同时,我们还学习了图像的像素表示方法,了解了图像由像素点组成的原理。

这使我们能够更好地理解后续实验中的算法和操作。

接下来,我们进行了图像的灰度化实验。

灰度化是将彩色图像转换为灰度图像的过程。

在实验中,我们使用了不同的算法来实现灰度化操作,包括平均值法、最大值法和加权平均法等。

通过比较不同算法得到的灰度图像,我们发现不同算法对图像的处理效果有所差异,这使我们深入理解了灰度化的原理和应用。

随后,我们进行了图像的直方图均衡化实验。

直方图均衡化是一种用于增强图像对比度的方法。

在实验中,我们使用了直方图均衡化算法来对图像进行处理,并观察了处理前后的效果变化。

通过实验,我们发现直方图均衡化能够显著提高图像的对比度,使图像更加清晰和鲜明。

在进一步探索图像处理技术的过程中,我们进行了图像的滤波实验。

滤波是一种常用的图像处理操作,它通过对图像进行卷积操作来实现。

在实验中,我们学习了不同类型的滤波器,包括均值滤波器、高斯滤波器和中值滤波器等。

通过比较不同滤波器对图像的处理效果,我们发现每种滤波器都有其适用的场景和效果。

此外,我们还进行了图像的边缘检测实验。

边缘检测是一种用于提取图像边缘信息的方法。

在实验中,我们学习了不同的边缘检测算法,包括Sobel算子、Canny算子和Laplacian算子等。

通过比较不同算法对图像的处理效果,我们发现每种算法都有其独特的特点和应用。

最后,我们进行了图像的压缩实验。

图像压缩是一种将图像数据进行压缩以减小文件大小的方法。

数字图像处理 图像压缩

数字图像处理 图像压缩

实验报告实验名称实验二图像压缩课程名称数字图像处理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.实验结论结果图离散余弦变换的变换核为余弦函数。

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

数字图像处理实验报告

数字图像处理实验报告

数字图像处理实验报告引言数字图像处理是一门研究如何对图像进行数字化处理的学科,它的应用广泛,涵盖了图像的获取、增强、压缩、分割等多个方面。

本次实验旨在探索数字图像处理的基本原理和常用技术,并通过实践操作加深对数字图像处理的理解。

实验目的1.学习掌握数字图像处理的基本原理;2.熟悉常用的数字图像处理工具和方法;3.实践应用数字图像处理技术解决实际问题。

实验环境在本次实验中,我们使用了以下环境和工具:- 操作系统:Windows 10 - 编程语言:Python - 图像处理库:OpenCV实验步骤步骤一:图像获取与显示首先,我们需要获取一张待处理的图像,并对其进行显示。

在Python中,我们可以使用OpenCV库来实现图像的读取和显示。

以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 显示图像cv2.imshow('Image', image)cv2.waitKey(0)cv2.destroyAllWindows()步骤二:图像增强图像增强是数字图像处理中常用的技术之一,旨在改善图像的质量和可视化效果。

常见的图像增强技术包括灰度转换、直方图均衡化、滤波器等。

以下是示例代码:import cv2# 读取图像image = cv2.imread('image.jpg')# 灰度转换gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GR AY)# 直方图均衡化equalized_image = cv2.equalizeHist(gray_image)# 高斯滤波器blurred_image = cv2.GaussianBlur(equalized_image, (5, 5), 0)# 边缘增强enhanced_image = cv2.Canny(blurred_image, 100, 20 0)# 显示图像cv2.imshow('Enhanced Image', enhanced_image)cv2.waitKey(0)cv2.destroyAllWindows()步骤三:图像压缩图像压缩是数字图像处理中的重要话题,旨在减少图像的存储空间和传输带宽。

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

竭诚为您提供优质文档/双击可除数字图像处理实验报告图像压缩
篇一:数字图像处理实验报告
数字图像处理
实验报告
课程:
班级:
学号:
姓名:
指导老师:
日期:
实验一
内容一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。

解:
代码:>>imwrite(Rgb,flower.bmp);
结果截图:
篇二:数字图像处理实验报告(完整版)
数字图像处理
实验一mATLAb数字图像处理初步
一、显示图像
1.利用imread()函数读取一幅图像,假设其名为lily.tif,存入一个数组中;
2.利用whos命令提取该读入图像flower.tif的基本信息;
3.利用imshow()函数来显示这幅图像;
实验结果如下图:
源代码:
>>I=imread(lily.tif)
>>whosI
>>imshow(I)
二、压缩图像
4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息;
5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q),q取0-100。

6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。

7.用imread()读入图像sunset.jpg和winter.jpg;
8.用imfinfo()获取图像sunset.jpg和winter.jpg的大小;
9.用figure,imshow()分别将sunset.jpg和
winter.jpg显示出来,观察两幅图像的质量。

其中9的实验结果如下图:
源代码:
4~6(接上面两个)>>I=imread(lily.tif)
>>imfinfolily.tif;
>>imwrite(I,lily.jpg,quality,20);
>>imwrite(I,lily.bmp);
7~9>>I=imread(sunset.jpg);
>>J=imread(winter.jpg)
>>imfinfosunset.jpg
>>imfinfowinter.jpg
>>figure(1),imshow(sunset.jpg)
>>figure(2),imshow(winter.jpg)
三、二值化图像
10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。

实验结果如下图:源代码:
>>I=imread(lily.tif)
>>gg=im2bw(I,0.4);
F>>igure,imshow(gg)
原始图像:
四、思考题
(1)简述matLab软件的特点。

答:①高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;②具有完备的图形处理功能,实现计算结果和编程的可视化;
③友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;
④功能丰富的应用工具箱(如信号处理工具箱、通信工
具箱等),为用户提供了大量方便实用的处理工具。

(2)matLab软件可以支持哪些图像文件格式?
Jpeg、Jpeg、pcx、TIFF、png、gIF、hDF、xwD等等。

(3)说明函数imread的用途格式以及各种格式所得到图像的性质。

imread函数用于读入各种图像文件,其一般的用法为
[x,mAp]=imread(‘filename’,‘fmt’)
其中,x,mAp分别为读出的图像数据和颜色表数据,fmt 为图像的格式,filename为读取的图像文件(可以加上文件的路径)。

(4)为什么用I=imread(‘lena.bmp’)命令得到的图像
I不可以进行算术运算?
matlab系统默认的算术运算时针对双精度类型(double)的数据,而上述命令产生的矩阵的数据类型是无符号8位,直接进行运算会溢出。

实验二图像的代数运算
一.图像的加法运算
在mATLAb中,如果要进行两幅图像的加法,或者给一
幅图像加上一个常数,可以调用imadd函数来实现。

imadd
函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。

imadd 函数的调用格式如下:
Z=imadd(x,Y)
其中,x和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。

实验结果如下图:
源代码:
I=imread(‘sunset.jpg’);
J=imread(‘bluehills.jpg’);
K=imadd(I,J);
imshow(K);(两幅图尺寸大小一致)
原始图像:
给图像的每一个像素加上一个常数可以使图像的亮度增加。

效果如下:
源代码
>>Rgb=imread(‘cameraman.tif’);
>>Rgb2=imadd(Rgb,50);
>>subplot(1,2,1);imshow(Rgb);
>>subplot(1,2,2);imshow(Rgb2);
二、图像的减法运算
在mATLAb中,使用imsubtract函数可以将一幅图像从。

相关文档
最新文档