数字图像处理实验四

合集下载

数字图像处理四个实验报告,带有源程序

数字图像处理四个实验报告,带有源程序

数字图像处理实验指导书学院:通信与电子工程学院专业:电子信息工程班级:学号:姓名:XX理工大学实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

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

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

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

5.图像间如何转化。

二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。

灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。

例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。

因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。

图像关于x和y坐标以及振幅连续。

要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。

将坐标值数字化成为取样;将振幅数字化成为量化。

采样和量化的过程如图1所示。

因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。

作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类:亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。

若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。

若图像是double类,则像素取值就是浮点数。

数字图像处理 实验四dct编码

数字图像处理  实验四dct编码

实验程序和结果:实验所使用的图像:1、利用Huffman进行JPEG图像压缩编码程序:I=imread('F\.jpg');pix(256)=struct('huidu',0.0,...%灰度值'number',0.0,...%对应像素的个数'bianma','');%对应灰度的编码[m n l]=size(I);fid=fopen('huffman.txt','w');%huffman.txt是灰度级及相应的编码表fid1=fopen('huff_compara.txt','w');%huff_compara.txt是编码表huf_bac=cell(1,l);for t=1:l%初始化结构数组for i=1:256pix(i).number=1;pix(i).huidu=i-1;%灰度级是0—255,因此是i-1pix(i).bianma='';end%统计每种灰度像素的个数记录在pix数组中for i=1:mfor j=1:nk=I(i,j,t)+1;%当前的灰度级pix(k).number=1+pix(k).number;endend%按灰度像素个数从大到小排序for i=1:255for j=i+1:256if pix(i).number<pix(j).numbertemp=pix(j);pix(j)=pix(i);pix(i)=temp;endendend%因为有的灰度值在图像中可能没有对应的像素值,所以要%找出在图像中存在像素的灰度级的个数,并保存在num中for i=256:-1:1if pix(i).number ~=0break;endendnum=i;count(t)=i;%记录每层灰度级%定义用于求解的矩阵clear huffmanhuffman(num,num)=struct('huidu',0.0,...'number',0.0,...'bianma','');huffman(num,:)=pix(1:num);%矩阵赋值for i=num-1:-1:1p=1;%算出队列中数量最少的两种灰度的像素个数的和sum=huffman(i+1,i+1).number+huffman(i+1,i).number;for j=1:i%如果当前要复制的结构体的像素个数大于sum就直接复制if huffman(i+1,p).number>sumhuffman(i,j)=huffman(i+1,p);p=p+1;else%如果当前要复制的结构体的像素个数小于或等于sum就插入和的结构体%灰度值为-1标志这个结构体的number是两种灰度像素的和huffman(i,j).huidu=-1;huffman(i,j).number=sum;sum=0;huffman(i,j+1:i)=huffman(i+1,j:i-1);break;endendend%开始给每个灰度值编码for i=1:num-1obj=0;for j=1:iif huffman(i,j).huidu==-1obj=j;break;elsehuffman(i+1,j).bianma=huffman(i,j).bianma;endendif huffman(i+1,i+1).number>huffman(i+1,i).number%说明:大概率的编0,小概率的编1,概率相等的,标号大的为1,标号小的为0 huffman(i+1,i+1).bianma=[huffman(i,obj).bianma '0'];huffman(i+1,i).bianma=[huffman(i,obj).bianma '1'];elsehuffman(i+1,i+1).bianma=[huffman(i,obj).bianma '1'];huffman(i+1,i).bianma=[huffman(i,obj).bianma '0'];endfor j=obj+1:ihuffman(i+1,j-1).bianma=huffman(i,j).bianma;endendfor k=1:count(t)huf_bac(t,k)={huffman(num,k)}; %保存endend%写出灰度编码表for t=1:lfor b=1:count(t)fprintf(fid,'%d',huf_bac{t,b}.huidu);fwrite(fid,' ');fprintf(fid,'%s',huf_bac{t,b}.bianma);fwrite(fid,' ');endfwrite(fid,'%');%先写灰度值,再写灰度级所对应的哈夫曼编码,并用将每个层级的灰度隔开end%按原图像数据,写出相应的编码,也就是将原数据用哈夫曼编码替代for t=1:lfor i=1:mfor j=1:nfor b=1:count(t)if I(i,j,t)==huf_bac{t,b}.huiduM(i,j,t)=huf_bac{t,b}.huidu;%将灰度级存入解码的矩阵fprintf(fid1,'%s',huf_bac{t,b}.bianma);fwrite(fid1,' ');%用空格将每个灰度编码隔开break;endendendfwrite(fid1,',');%用空格将每行隔开endfwrite(fid1,'%');%用%将每层灰度级代码隔开endfclose(fid);fclose(fid1);M=uint8(M);save('M')%存储解码矩阵编码结果:Huffman编码表:Huffman代码:Huffman解码程序:function huf_decode%哈夫曼编码解码load MI=imread('F:\Heat.jpg');subplot(1,2,1),imshow(I),title('原图')%读出原图subplot(1,2,2),imshow(M),title('huffman解码后的图')%读出解码后的图解码结果:2、利用行程编码进行图像压缩的MATLAB程序function yc%行程编码算法%读图I=imread('zbz.jpg');[m n l]=size(I);fid=fopen('yc.txt','w');%yc.txt是行程编码算法的灰度级及其相应的编码表%行程编码算法sum=0;for k=1:lfor i=1:mnum=0;J=[];value=I(i,1,k);for j=2:nif I(i,j,k)==valuenum=num+1;%统计相邻像素灰度级相等的个数if j==nJ=[J,num,value];endelse J=[J,num,value];%J的形式是先是灰度的个数及该灰度的值 value=I(i,j,k);num=1;endendcol(i,k)=size(J,2);%记录Y中每行行程行程编码数sum=sum+col(i,k);Y(i,1:col(i,k),k)=J;%将I中每一行的行程编码J存入Y的相应行中 endend%输出相关数据[m1,n1,l1]=size(Y);disp('原图像大小:')whos('I');disp('压缩图像大小:')whos('Y');disp('图像的压缩比:');disp(m*n*l/sum);%将编码写入yc.txt中for k=1:l1for i=1:m1for j=1:col(i,k)fprintf(fid,'%d',Y(i,j,k));fwrite(fid,' ');endendfwrite(fid,' ');endsave('Y')%存储,以便解码用save('col')fclose(fid);结果:编码代码:function yc_decode%行程编编码解码load Y %下载行程编码Yload col %下载Y中每行行程行程编码数[m,n,l]=size(Y);for k=1:lfor i=1:mp=1;for j=1:2:col(i,k)d=Y(i,j,k);%灰度值的个数for c=p:p+d-1X(i,c,k)=Y(i,j+1,k);%将d个灰度值存入X中endp=p+d;endendendI=imread('zbz.jpg');subplot(1,2,1),imshow(I),title('原图')%读出原图subplot(1,2,2),imshow(X),title('行程编码解码后的图')%读出解码后的图解码后:3、利用DCT进行图像压缩的MATLAB程序I=imread(‘rice.png’); %读入原图像;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(‘压缩图像’);%显示压缩后的图像实验结果:。

数字图像处理 实验报告四

数字图像处理 实验报告四

实验四空域滤波一,实验目的:实现图像的线性滤波和非线性滤波变换二,实验条件1,MATLAB软件2,典型的灰度,彩色图像。

三,实验原理均值滤波是在空间域对图象进行平滑处理的一种方法,易于实现,效果也挺好。

表达式的算法是由某像素领域内各点灰度值的平均值来代替该像素原来的灰度值。

最大(小)值滤波,中值滤波是一种非线性处理技术,能抑制图象中的噪声。

在处理之后,位于窗口正中的像素的灰度值,用窗口内各像素灰度值的最大(小),中值代替。

四,实验内容(1)线性滤波,自行编写程序,实现图像的均值滤波。

模板3*3,5*5,7*7。

(2)非线性滤波,自行编写程序,实现图像的统计序滤波,(最大(小)值,中值(median),滤波)模板3*3,5*5,7*7。

(3)将滤波前后的图像进行比较,分析其异同;将原图像加噪处理(imnoise)之后,再滤波处理,结果又如何五,实验步骤(1)线性滤波,实现图像的均值滤波。

模板3*3,5*5,7*7。

以下以3*3为例:代码大致思路如下:先对图片灰度矩阵除去四边后的部分进行计算。

然后对四边除去四角后进行计算,最后对四角进行计算。

鉴于这个方法比较繁琐麻烦,所以在非线性滤波程序中改用了别的方法处理3*3模板。

I=imread('a.jpg');J=rgb2gray(I);J=double(J);A0=zeros(287,287); %A0为线性变换后的图像for i=2:286 %对图片灰度矩阵除去四边后的部分进行计算for j=2:286A0(i,j)=(1/9)*(J(i-1,j-1)+J(i-1,j)+J(i-1,j+1)+J(i,j-1)+J(i,j)+J(i,j+1)+J(i+1,j-1)+J(i+1,j)+J(i+1,j+1));endendfor i=2:286 %对四边除去四角后进行计算A0(1,i)=(1/9)*(J(i,j-1)+J(i,j)+J(i,j+1)+J(i+1,j-1)+J(i+1,j)+J(i+1,j+1));A0(287,i)=(1/9)*(J(i-1,j-1)+J(i-1,j)+J(i-1,j+1)+J(i,j-1)+J(i,j)+J(i,j+1));A0(i,1)=(1/9)*(J(i-1,j)+J(i-1,j+1)+J(i,j)+J(i,j+1)+J(i+1,j)+J(i+1,j+1));A0(i,287)=(1/9)*(J(i-1,j-1)+J(i-1,j)+J(i,j-1)+J(i,j)+J(i+1,j-1)+J(i+1,j+1));endA0(1,1)=(1/9)*(J(i,j)+J(i,j+1)+J(i+1,j)+J(i+1,j+1)); %对四角进行计算A0(1,287)=(1/9)*(J(i,j-1)+J(i,j)+J(i+1,j-1)+J(i+1,j+1));A0(287,1)=(1/9)*(J(i-1,j)+J(i-1,j+1)+J(i,j)+J(i,j+1));A0(287,287)=(1/9)*(J(i-1,j-1)+J(i-1,j)+J(i,j-1)+J(i,j));imshow(A0);线性滤波的图像如图一所示:5010015020025050100150200250图一线性变换(2)非线性滤波,实现图像的统计序滤波,(最大(小)值,中值(median )滤波)模板3*3,5*5,7*7。

《数字图像处理》实验教案

《数字图像处理》实验教案

《数字图像处理》实验教案一、实验目的与要求1. 实验目的(1)理解数字图像处理的基本概念和原理;(2)掌握常用数字图像处理算法和技巧;(3)培养实际操作能力和动手能力,提高解决实际问题的能力。

2. 实验要求(1)熟悉实验环境和相关软件;(2)了解实验原理和流程;二、实验环境与工具1. 实验环境(1)计算机操作系统:Windows 10/Linux/macOS;(2)编程语言:MATLAB/Python/C++等;(3)图像处理软件:Photoshop/OpenCV等。

2. 实验工具(1)编程环境:MATLAB/Python/C++开发工具;(2)图像处理软件:Photoshop/OpenCV;(3)实验教材和参考资料。

三、实验内容与步骤1. 实验一:图像读取与显示(1)打开图像处理软件,导入一幅图像;(2)了解图像的基本信息,如像素大小、分辨率等;(3)将图像显示在界面上,进行观察和分析。

2. 实验二:图像基本运算(1)对图像进行灰度化处理;(2)进行图像的直方图均衡化;(3)实现图像的滤波处理,如高斯滤波、中值滤波等。

3. 实验三:边缘检测(1)实现Sobel边缘检测算法;(2)实现Canny边缘检测算法;(3)分析不同边缘检测算法的效果和特点。

4. 实验四:图像分割(1)利用阈值分割法对图像进行分割;(2)利用区域生长法对图像进行分割;(3)分析不同图像分割算法的效果和特点。

5. 实验五:特征提取与匹配(1)提取图像的关键点,如角点、边缘点等;(2)利用特征匹配算法,如SIFT、SURF等,进行图像配准;(3)分析不同特征提取与匹配算法的效果和特点。

四、实验注意事项1. 严格遵循实验要求和步骤,确保实验的正确性;2. 注意实验环境和工具的使用,防止计算机和设备的损坏;3. 尊重知识产权,不得抄袭和剽窃他人成果;4. 实验过程中遇到问题,应及时请教老师和同学。

五、实验报告要求1. 报告内容:实验目的、实验环境、实验内容、实验步骤、实验结果及分析;2. 报告格式:文字描述清晰,条理分明,公式和图像正确无误;3. 报告篇幅:不少于2000字;4. 提交时间:实验结束后一周内。

图像处理实验安排

图像处理实验安排
实验一图像增强实验实验二图像变换实验实验三图像分割实验实验四图像压缩实验实验一图像增强实验对灰度图像进行简单的灰度线形变换看其直方图的对应变化和图像对比度的变化
数字图像处理实验
实验要求
★ 采用Matlab软件编写,不得调用Matlab
自带的图像函数,但可以调用其它数学 函数(特殊要求的除外); ★ 必须独立完成实验; ★ 提交实验报告,包括Source Code和 实验结果与分析; ★ 电子版打包上传到624968304@。 文件命名为: 班级+姓名.rar。
实验三 图像分割实验
图像分割


边缘检测:分别用sobel、LaplacianGaussian方法对一幅灰度图像进行边缘提取, 给出对比结果; 灰度阀值分割:利用双峰法对一幅灰度图像 进行灰度分割处理。
实验图像:任选
实验四 图像压缩实验
实现JPEG的压缩和编码
实现基本JPEG的压缩和编码分三个步骤: (1)首先通过DCT变换去除数据冗余; (2)使用量化表对DCT系数进行量化; (3)对量化后的系数进行Huffman编码。
实验图像: Cameraman.bmp
实验二 图像变换实验
图像变换


傅立叶变换:熟悉其概念和原理,实现对一幅 灰度图像的快速傅立叶变换,并求其变换后的 系数(幅度)分布; DCT变换:熟悉其概念和原理,实现对一幅 图像做离散余弦变换,选择适当的DCT系数阈 值对其进行DCT反变换 ;
实验图像: lena.bmp
ቤተ መጻሕፍቲ ባይዱ
实验图像:任选
实验报告
1. 实验目的 2. 实验原理(包括原理、方法、系 统组成、流程图和代码及其注释) 3. 实验内容(包括实验项目和步骤) 4. 实验结果及分析

实验四图像增强

实验四图像增强

实验四-图像增强信息工程学院实验报告课程名称:数字图像处理班级: 姓名: 学号:一、实验目的1.了解图像增强的目的及意义,加深对图像增强的感性认识,巩固所学理论知识。

2. 掌握图像空域增强算法的基本原理。

3. 掌握图像空域增强的实际应用及MATLAB 实现。

4. 掌握频域滤波的概念及方法。

5. 熟练掌握频域空间的各类滤波器。

6.掌握怎样利用傅立叶变换进行频域滤波。

7. 掌握图像频域增强增强的实际应用及MATLAB 实现。

二、实验步骤及结果分析1. 基于幂次变换的图像增强 程序代码:clear all ; close all ;I{1}=double(imread('fig534b.tif')); I{1}=I{1}/255;figure,subplot(2,4,1);imshow(I{1},[]);hold on I{2}=double(imread('room.tif')); I{2}=I{2}/255;subplot(2,4,5);imshow(I{2},[]);hold on for m=1:2 Index=0;for lemta=[0.5 5] Index=Index+1;F{m}{Index}=I{m}.^lemta;subplot(2,4,(m-1)*4+Index+1),imshow(F{m}{Index},[]) end end成 绩:指导老师(签名):执行结果:图1 幂次变换增强结果实验结果分析:由实验结果可知,当r<1时,黑色区域被扩展,变的清晰;当r>1时,黑色区域被压缩,变的几乎不可见。

2.直方图规定化处理程序代码:clear allclcclose all%0.读图像I=double(imread('lena.tiff'));subplot(2,4,1);imshow(I,[]);title('原图')N=32;Hist_image=hist(I(:),N);Hist_image=Hist_image/sum(Hist_image);Hist_image_cumulation=cumsum(Hist_image);%累计直方图subplot(245);stem(0:N-1,Hist_image);title('原直方图');%1.设计目标直方图Index=0:N-1;%正态分布直方图Hist{1}=exp(-(Index-N/2).^2/N);Hist{1}=Hist{1}/sum(Hist{1});Hist_cumulation{1}=cumsum(Hist{1});subplot(242);stem([0:N-1],Hist{1});title('规定化直方图1');%倒三角形状直方图Hist{2}=abs(2*N-1-2*Index);Hist{2}=Hist{2}/sum(Hist{2});Hist_cumulation{2}=cumsum(Hist{2});subplot(246);stem(0:N-1,Hist{2});title('规定化直方图2');%2. 规定化处理Project{1}=zeros(N);Project{2}=zeros(N);Hist_result{1}=zeros(N);Hist_result{2}=zeros(N);for m=1:2Image=I;%SML 处理(SML,Single Mapping Law 单映射规则 for k=1:NTemp=abs(Hist_image_cumulation(k)-Hist_cumulation{m});[Temp1,Project{m}(k)]=min(Temp); end%2.2 变换后直方图 for k=1:NTemp=find(Project{m}==k); if isempty(Temp) Hist_result{m}(k)=0; elseHist_result{m}(k)=sum(Hist_imag e(Temp)); end endsubplot(2,4,(m-1)*4+3); stem(0:N-1,Hist_result{m}); title(['变换后的直方图',num2str(m)]); %2.3结果图 Step=256/N; for K=1:NIndex=find(I>=Step*(k-1)&I<Step *k);Image(Index)=Project{m}(k); endsubplot(2,4,(m-1)*4+4),imshow(I mage,[]);title(['变换后的结果图',num2str(m)]); end执行结果:原图0.020.040.060.080.100.020.040.060.080.100.020.040.060.08规定化直方图220400.050.10.150.2变换后的直方图1变换后的结果图1020400.020.040.060.080.10.12变换后的直方图2变换后的结果图2图2 直方图规定化实验结果分析:由实验结果可知,采用直方图规定化技术后,原图的直方图逼近规定化的直方图,从而有相应的变换后的结果图1和变换后的结果图2。

数字图像处理实验4-图像增强(1)

数字图像处理实验4-图像增强(1)

实验时间:200 年月日实验小组:第组组长:组员:组员:指导教师签名:实验情况评定:实验四图像增强(1)实验目的:通过实验掌握下列知识:1、学习常见的图像增强的方法并实际体会图像增强前后画质的变化;2、了解几种不同增强方式用于不同图像处理所取得的效果(全域线性变换和分段线性变换);3、初步掌握简单算法的代码实现的方法;4、初步了解MFC的一些初步编程技巧;内容及步骤一、通过VC实现一个全域线性变换:1、按照前面实验介绍的方法,建立一个ImageProcessing Wizard工程;2、选择菜单里的工程->设置,选择C/C++选项卡,Y分类下拉条里选择CodeGeneration,然后在Struct member alignment中选择1 Byte;3、利用试验三介绍的方法,通过CBmp类读入“pictures”文件夹中的“图片1.bmp”:a.给CxxxxDlg类添加一个成员变量CBmp* bmp1;b.在CxxxxDlg类的消息处理函数OnInitDialog里添加CBmp的初始化代码,以及图形文件的装载代码;c.在CxxxxDlg类的消息处理函数DestroyWindow()里添加如下代码,防止内存泄漏:delete bmp1;3、在CxxxxDlg类的消息处理函数OnOK里,增加如下代码:struct rgb tx;for(int i=0; i<bmp1->nWidth; i++)for(int j=0; j<bmp1->nHeight; j++) {tx = bmp1->pImageData[j*bmp1->nWidth+i];//此处添加图形增强的代码}for(i=0; i<bmp1->nWidth; i++) //此处显示处理后的图形for(int j=0; j<bmp1->nHeight; j++) {tx = bmp1->pImageData[j*bmp1->nWidth+i];pDC->SetPixel(i, j, RGB(tx.red, tx.grn, tx.blu));}4、在上述代码中间添加图形增强的代码,应该注意:读取的是彩色图形,所以在进行全域线性变换时,应针对每一个基色分别进行全域线性变换;5、全域线性变换的参数:a=0,b=255,c=50,d=150;二、通过VC实现一个分段线性变换:1、1-3步骤与上一个实验相同,这里是针对“pictures”文件夹中的“图片2.bmp”,这个实验是针对图形进行分段线性变换;4、分段线性变换的参数为:a=145、b=220、c=175、d=210;5、同样应该注意:读取的是彩色图形,所以在进行分段线性变换时,应针对每一个基色分别进行分段线性变换;6、运行并观察运行结果;实验报告要求:1、记录你编写的全域线性实验代码;2、记录你编写的分段线性实验代码;。

数字图像处理及MATLAB实现实验四——图像变换

数字图像处理及MATLAB实现实验四——图像变换

数字图像处理及MATLAB实现实验四——图像变换1.图像的傅⾥叶变换⼀(平移性质)傅⾥叶变换的平移性质表明了函数与⼀个指数项相乘等于将变换后的空域中⼼移到新的位置,并且平移不改变频谱的幅值。

I=imread('1.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅⾥叶频谱%对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;figure(2)imshow(real(a));I=imread('2.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅⾥叶频谱%对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;figure(2)imshow(real(a));I=imread('3.bmp');figure(1)imshow(real(I));I=I(:,:,3);fftI=fft2(I);sfftI=fftshift(fftI); %求离散傅⾥叶频谱%对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置RRfdp1=real(sfftI);IIfdp1=imag(sfftI);a=sqrt(RRfdp1.^2+IIfdp1.^2);a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;figure(2)imshow(real(a));实验结果符合傅⾥叶变换平移性质2.图像的傅⾥叶变换⼆(旋转性质)%构造原始图像I=zeros(256,256);I(88:168,124:132)=1; %图像范围是256*256,前⼀值是纵向⽐,后⼀值是横向⽐imshow(I)%求原始图像的傅⾥叶频谱J=fft2(I);F=abs(J);J1=fftshift(F);figureimshow(J1,[550])%对原始图像进⾏旋转J=imrotate(I,90,'bilinear','crop');figureimshow(J)%求旋转后图像的傅⾥叶频谱J=fft2(I);F=abs(J);J2=fftshift(F);figureimshow(J2,[550])3.图像的离散余弦变换⼀%对cameraman.tif⽂件计算⼆维DCT变换RGB=imread('cameraman.tif');figure(1)imshow(RGB)I=rgb2gray(RGB);%真彩⾊图像转换成灰度图像J=dct2(I);%计算⼆维DCT变换figure(2)imshow(log(abs(J)),[])%图像⼤部分能量集中在左上⾓处figure(3);J(abs(J)<10)=0;%把变换矩阵中⼩于10的值置换为0,然后⽤idct2重构图像K=idct2(J)/255;imshow(K)4.图像的离散余弦变换⼆% I=imread('1.bmp');% figure(1)% imshow(real(I));% I=I(:,:,3);% fftI=fft2(I);% sfftI=fftshift(fftI); %求离散傅⾥叶频谱% %对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置% RRfdp1=real(sfftI);% IIfdp1=imag(sfftI);% a=sqrt(RRfdp1.^2+IIfdp1.^2);% a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;% figure(2)% imshow(real(a));% I=imread('2.bmp');% figure(1)% imshow(real(I));% I=I(:,:,3);% fftI=fft2(I);% sfftI=fftshift(fftI); %求离散傅⾥叶频谱% %对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置% RRfdp1=real(sfftI);% IIfdp1=imag(sfftI);% a=sqrt(RRfdp1.^2+IIfdp1.^2);% a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;% figure(2)% imshow(real(a));% I=imread('3.bmp');% figure(1)% imshow(real(I));% I=I(:,:,3);% fftI=fft2(I);% sfftI=fftshift(fftI); %求离散傅⾥叶频谱% %对原始图像进⾏⼆维离散傅⾥叶变换,并将其坐标原点移到频谱图中央位置% RRfdp1=real(sfftI);% IIfdp1=imag(sfftI);% a=sqrt(RRfdp1.^2+IIfdp1.^2);% a=(a-min(min(a)))/(max(max(a))-min(min(a)))*225;% figure(2)% imshow(real(a));% %构造原始图像% I=zeros(256,256);% I(88:168,124:132)=1; %图像范围是256*256,前⼀值是纵向⽐,后⼀值是横向⽐% imshow(I)% %求原始图像的傅⾥叶频谱% J=fft2(I);% F=abs(J);% J1=fftshift(F);figure% imshow(J1,[550])% %对原始图像进⾏旋转% J=imrotate(I,90,'bilinear','crop');% figure% imshow(J)% %求旋转后图像的傅⾥叶频谱% J=fft2(I);% F=abs(J);% J2=fftshift(F);figure% imshow(J2,[550])% %对cameraman.tif⽂件计算⼆维DCT变换% RGB=imread('cameraman.tif');% figure(1)% imshow(RGB)% I=rgb2gray(RGB);% %真彩⾊图像转换成灰度图像% J=dct2(I);% %计算⼆维DCT变换% figure(2)% imshow(log(abs(J)),[])% %图像⼤部分能量集中在左上⾓处% figure(3);% J(abs(J)<10)=0;% %把变换矩阵中⼩于10的值置换为0,然后⽤idct2重构图像% K=idct2(J)/255;% imshow(K)RGB=imread('cameraman.tif');I=rgb2gray(RGB);I=im2double(I); %转换图像矩阵为双精度型T=dctmtx(8); %产⽣⼆维DCT变换矩阵%矩阵T及其转置T'是DCT函数P1*X*P2的参数B=blkproc(I,[88],'P1*x*P2',T,T');maxk1=[ 1111000011100000110000001000000000000000000000000000000000000000 ]; %⼆值掩模,⽤来压缩DCT系数B2=blkproc(B,[88],'P1.*x',mask1); %只保留DCT变换的10个系数I2=blkproc(B2,[88],'P1*x*P2',T',T); %重构图像figure,imshow(T);figure,imshow(B2);figure,imshow(I2);RGB=imread('cameraman.tif');I=rgb2gray(RGB);I=im2double(I); %转换图像矩阵为双精度型T=dctmtx(8); %产⽣⼆维DCT变换矩阵%矩阵T及其转置T'是DCT函数P1*X*P2的参数B=blkproc(I,[88],'P1*x*P2',T,T');maxk1=[ 1111000011100000100000000000000000000000000000000000000000000000 ]; %⼆值掩模,⽤来压缩DCT系数B2=blkproc(B,[88],'P1.*x',mask1); %只保留DCT变换的10个系数I2=blkproc(B2,[88],'P1*x*P2',T',T); %重构图像figure,imshow(T);figure,imshow(B2);figure,imshow(I2);5.图像的哈达玛变换cr=0.5;I=imread('cameraman.tif');I=im2double(I)/255; %将读⼊的unit8类型的RGB图像I转换为double类型的数据figure(1),imshow(I);%显⽰%求图像⼤⼩[m_I,n_I]=size(I); %提取矩阵I的⾏列数,m_I为I的⾏数,n_I为I的列数sizi=8;snum=64;%分块处理t=hadamard(sizi) %⽣成8*8的哈达码矩阵hdcoe=blkproc(I,[sizi sizi],'P1*x*P2',t,t');%将图⽚分成8*8像素块进⾏哈达码变换%重新排列系数CE=im2col(hdcoe,[sizi,sizi],'distinct');%将矩阵hdcode分为8*8互不重叠的⼦矩阵,再将每个⼦矩阵作为CE的⼀列[Y Ind]=sort(CE); %对CE进⾏升序排序%舍去⽅差较⼩的系数,保留原系数的⼆分之⼀,即32个系数[m,n]=size(CE);%提取矩阵CE的⾏列数,m为CE的⾏数,n为CE的列数snum=snum-snum*cr;for i=1:nCE(Ind(1:snum),i)=0;end%重建图像re_hdcoe=col2im(CE,[sizi,sizi],[m_I,n_I],'distinct');%将矩阵的列重新组织到块中re_I=blkproc(re_hdcoe,[sizi sizi],'P1*x*P2',t',t);%进⾏反哈达码变换,得到压缩后的图像re_I=double(re_I)/64; %转换为double类型的数据figure(2);imshow(re_I);%计算原始图像和压缩后图像的误差error=I.^2-re_I.^2;MSE=sum(error(:))/prod(size(re_I));。

数字图像处理实验四

数字图像处理实验四

福建农林大学计算机与信息学院实验报告
系:计算机与信息学院专业:电子信息工程年级:2014级
:吕志缘学号:3146004063 实验室号__明南附203 计算机号
实验时间:20170507 指导教师签字:成绩:
报告退发(订正、重做)
实验四频率域滤波
1.实验目的和要求
掌握二维离散傅立叶变换的计算;
掌握频率域图像的平滑和锐化方法;
2.实验内容和原理
✧根据二维离散傅立叶变换公式计算傅立叶谱,并显示相应的傅立叶谱图
像。

✧利用matlab工具包,实现高斯低通滤波和高通滤波。

3.实验环境
硬件:一般PC机
操作系统:WindowsXP
编程平台:MATLAB 或高级语言
4.算法描述及实验步骤
实验结果
5.
6. 总结
傅立叶变换是线性系统分析的一个有力工具,它能够定量分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪声等的作用。

通过实验培养这项技能,将有助于解决大多数图像处理问题。

对任何想在工作中有效应用数字图像处理技术的人来说,学习好傅立叶变换很有必要。

其公式如下:。

数字图像处理实验4

数字图像处理实验4

数字图像处理实验4福建农林⼤学⾦⼭学院信息⼯程类实验报告系:信息与机电⼯程系专业:电信年级: 2011级姓名:学号:实验课程:数字图像处理实验室号:_ 实验1楼608 实验设备号:实验时间: 2013.6.9 指导教师签字:成绩:实验四图像压缩编码⼀、实验⽬的1.了解有关数字图像压缩的基本概念2.理解有损压缩和⽆损压缩的概念;3.理解图像压缩的主要原则和⽬的;4.了解⼏种常⽤的图像压缩编码⽅式。

5.进⼀步熟悉DCT的概念和原理;6.掌握对灰度和彩⾊图像作离散余弦变换和反变换的⽅法;7.掌握利⽤MATLAB软件进⾏图像压缩。

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

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

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

压缩的实现⽅法是对图像重新进⾏编码,希望⽤更少的数据表⽰图像。

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

⾼效编码的主要⽅法是尽可能去除图像中的冗余成分,从⽽以最⼩的码元包含最⼤的图像信息。

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

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

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

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

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

应⽤在多媒体中的图像压缩编码⽅法,从压缩编码算法原理上可以分为以下3类:(1)⽆损压缩编码种类哈夫曼(Huffman)编码,算术编码,⾏程(RLE)编码,Lempel zev编码。

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

matlab 数字图像处理实验报告(五份)

matlab 数字图像处理实验报告(五份)

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。

二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。

从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。

其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。

此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。

频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。

常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。

假定原图像为f(x,y),经傅立叶变换为F(u,v)。

频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。

四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\624baf9dbcc4910a.jpg');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'IMG_20170929_130307.jpg', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 196Original Image2.给定函数的累积直方图。

数字图像处理四个实验

数字图像处理四个实验

数字图像处理实验指导书目录实验一MATLAB数字图像处理初步实验二图像的代数运算实验三图像增强-空间滤波实验四图像分割实验五形态学运算3实验一 MATLAB数字图像处理初步一、实验目的与要求1.熟悉及掌握在MATLAB中能够处理哪些格式图像。

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

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

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

5.图像间如何转化。

二、实验原理及知识点1、数字图像的表示和类别一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。

灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。

例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。

因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。

图像关于x和y坐标以及振幅连续。

要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。

将坐标值数字化成为取样;将振幅数字化成为量化。

采样和量化的过程如图1所示。

因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。

作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类:亮度图像(Intensity images)二值图像(Binary images)索引图像(Indexed images)RGB图像(RGB images)(1) 亮度图像一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。

若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。

数字图像处理-实验四

数字图像处理-实验四

三、实验步骤:
1 .创建一个 GUI 用户界面窗口(如下图所示) 用户界面窗口( 下图所示 所示)
2 .编辑该 GUI 所对应的 m 文件,具体程序如下 文件,
(1)原始图像部分: B=imread('peppers.tif'); subplot(2,2,1); imshow(B); title('原始图像');
图像复原实验 一、 实验目的及要求:
利用反向滤波和维纳滤波进行图像复原。
二、实验内容:
(1)给定一个图像及其降值图像,分别为 peppers.tif 和 peppers_degraded.tif。降值模型由下式给出, 与降值图像相关的参数是: N = 256, n = 5, r0 = 36 。
H (u, v ) =
专业:是指所作实验针对的学生所学专业
for u=1:256 for v=1:256 p(u,v)=abs(h(u,v)^2)/(abs(h(u,v)^2)+17); f(u,v)=p(u,v)*g(u,v)/h(u,v); end end f=ifftshift(f); f=abs(ifft2(f)); fmax=max(max(f)); fmin=min(min(f)); step=fmax-fmin; for e=1:256 for o=1:256 f(e,o)=(f(e,o)-fmin)/step; end end subplot(2,2,4); imshow(f); title('维纳滤波的复原图像'); 实验运行结果:
1 u2 + v2 1+ r2 0
n
u, v = − N / 2,− N / 2 + 1,...,−1,0,1,..., N / 2 − 1

数字图像处理实验(全完整答案)

数字图像处理实验(全完整答案)

实验一常用MATLAB图像处理命令一、实验目得1、熟悉并掌握MATLAB工具得使用;2、实现图像得读取、显示、代数运算与简单变换。

二、实验环境MATLAB 6。

5以上版本、WIN XP或WIN2000计算机三、常用函数●读写图像文件1 imreadimread函数用于读入各种图像文件,如:a=imread('e:\w01。

tif')2 imwriteimwrite函数用于写入图像文件,如:imwrite(a,’e:\w02。

tif’,’tif')3imfinfoimfinfo函数用于读取图像文件得有关信息,如:imfinfo('e:\w01、tif’)●图像得显示1imageimage函数就是MATLAB提供得最原始得图像显示函数,如:a=[1,2,3,4;4,5,6,7;8,9,10,11,12];image(a);2 imshowimshow函数用于图像文件得显示,如:i=imread('e:\w01、tif');imshow(i);title(‘原图像’)%加上图像标题3 colorbarcolorbar函数用显示图像得颜色条,如:i=imread(’e:\w01。

tif');imshow(i);colorbar;4 figurefigure函数用于设定图像显示窗口,如:figure(1); /figure(2);5 subplot把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示、Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形、6 plot绘制二维图形plot(y)Plot(x,y)xy可以就是向量、矩阵。

图像类型转换1rgb2gray把真彩图像转换为灰度图像i=rgb2gray(j)2 im2bw通过阈值化方法把图像转换为二值图像I=im2bw(j,level)Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围得n%3 imresize改变图像得大小I=imresize(j,[m n])将图像j大小调整为m行n列图像运算1imadd两幅图像相加,要求同样大小,同种数据类型Z=imadd(x,y)表示图像x+y2 imsubstract两幅图像相减,要求同样大小,同种数据类型Z=imsubtract(x,y) 表示图像x-y3 immultiplyZ=immultiply(x,y) 表示图像x*y4 imdivideZ=imdivide(x,y) 表示图像x/y四、实验内容(请将实验程序填写在下方合适得位置,实验图像结果拷屏粘贴)1、读入一幅RGB图像,变换为灰度图像与二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像与灰度图像,注上文字标题。

数字图像处理实验四

数字图像处理实验四

电子工程学院数字图像处理课程实验报告g = imbinarize(f, T/255); %二值化图像阈值分割figure(1);subplot(221);imshow(f);title('原图像');subplot(222);imshow(g);title('basic global thresholding');se=strel('ball',8,8); % 创建球体,半径8f1=imdilate(I,se); %膨胀subplot(223)imshow(f1);title('膨胀后图像');f2=imbinarize(f1); %二值化图像阈值分割subplot(224)imshow(f2);title('分割标记后图像');%Otsu方法二值化图像I = imread('C:\picture\256.tif');J = imnoise(I, 'salt & pepper',0.02); %添加噪声figure(2);subplot(231);imshow(I);title('原图像');subplot(232);imshow(J);title('加椒盐噪声后的图像');k = medfilt2(J,[5 5]);subplot(233);imshow(k);title('5x5模板中值滤波')T=graythresh(k); %最大类间方差法找到图片的一个合适的阈值g=imbinarize(f,T);subplot(234);imshow(g);title('Otsu方法二值化图像');se=strel('ball',8,8); % 创建球体,半径8f1=imdilate(I,se);subplot(235)imshow(f1);title('膨胀后图像');f2=imbinarize(f1);[f2,N]=bwlabel(f2,8);subplot(236)imshow(f2);title('分割标记后图像');六、心得体会(思考与创新、建议等)思考题:1、除了形态学方法用其他方法如何实现图像分割?答:阈值分割:图像分割的经典方法是基于灰度阈值的分割方法,它通过设置阈值,把像素点按灰度级分若干类,从而实现图像分割;区域分割:利用的是图像的空间性质,认为分割出来的属于同一区域的像素应具有相似的性质;运动分割:研究对象通常是图像序列,图像序列的每一幅为一帧,不同时刻采集的多帧图像中包含了存在于相机与景物之间的相对运动信息。

数字图像处理第四次作西安交大

数字图像处理第四次作西安交大

数字图像处理第四次作业姓名:班级:学号:提交日期:摘要本次作业学习了空域滤波器的使用,并且学习了如何产生高斯函数。

通过对实验结果的分析可以发现高斯函数对于细小的噪声优化效果较好,而中值滤波对于大噪声也有一定的优化效果。

而后面的边缘提取作业,很明显的可以看出使用Canny算子的图片处理效果要好很多,虽然仍旧存在边缘不连续的问题,但是整体的边缘已经提取了出来。

一、空域低通滤波器:分别用高斯滤波器和中值滤波器去平滑测试图像test1和2,模板大小分别是3x3 ,5x5 ,7x7;(利用固定方差sigma=1.5产生高斯滤波器)(一)中值滤波器:一个数值集合的中值n是这样的数值,即数值集合中有一半小于或等。

于n,还有一半大于或等于n。

为了对一幅图像上的某点进行中值滤波处理,首先将领域内的像素分类排序,确定其中值,并将中值赋予滤波后图像中的相应像素点。

这样,中值滤波器的主要公式是使拥有不同灰度的点看起来更接近于它的相邻点。

事实上,我们使用mxm中值滤波器来去除那些相对于其领域像素更亮或更暗并且其区域小于m^2/2(滤波区域的一半)的鼓励像素族。

在这种情况下,“去除”的意思是强制为领域的中值灰度。

较大的族所受到的影响明显较小。

程序运行结果:结果观察:通过运行结果可以看出从处理后的图像看,图像的平滑效果较为明显,且受窗口的影响,窗口越大,平滑效果越明显,图像细节越模糊,尤其是test2中人脸图像的眼睛部分,随着滤波器模板的增大,可以明显的感受到图像模糊的效果。

这三个模板中,感觉5x5的模板滤波效果最好。

(二)高斯滤波器:(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的。

一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑.旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向。

(2)高斯函数是单值函数。

这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的。

《数字图像处理》实验指导书

《数字图像处理》实验指导书

数字图像处理实验指导书电气信息工程系实验中心2008年8月目 录实验一、数字图像获取实验二、图像的傅立叶变换实验三、图像增强实验四、图像压缩实验一、数字图像获取一、实验目的1.掌握使用扫描仪等数字化设备以及计算机获取数字图像的方法;2.修改图像的存储格式。

二、实验仪器1.计算机;2.扫描仪(或数码相机、数字摄像机)及其驱动程序盘;3.图像处理软件(画图,photoshop, Microsoft photo edit等);4.记录用的笔、纸。

三、 实验内容用扫描仪获取图像也是图像的数字化过程的方法之一,扫描仪按种类可以分为手持扫描仪,台式扫描仪和滚筒式扫描仪(鼓形扫描仪)。

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

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

分辨率的单位是dpi,dpi是英文Dot Per Inch的缩写,意思是每英寸的像素点数。

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

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

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

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

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

数字图像处理实验四

数字图像处理实验四

数字图像处理实验四图像复原一、实验目的了解matlab有关图像复原的操作,如图像的读写,显示,加噪声,去噪声等。

二、实验要求1、使用不同模糊化方法对图像Lena进行模糊处理,对原图像及模糊化图像进行比较(注明模糊化的类型),并保存模糊图像。

(此题中所用的图像和保存的图像在Images文件夹中)I = imread('lena.tif'); %读入图像subplot(221);imshow(I);title('原始图像');H=fspecial('motion',30,45); %运动模糊PSFMotionBlur=imfilter(I,H); %卷积imwrite(MotionBlur,'运动模糊.tif'); %保存运动模糊图像subplot(222);imshow(MotionBlur);title('运动模糊图像');H=fspecial('disk',10); %圆盘状模糊PSFbulrred=imfilter(I,H);imwrite(bulrred,'圆盘状模糊.tif'); %保存圆盘状模糊图像subplot(223);imshow(bulrred);title('圆盘状模糊图像');H=fspecial('unsharp'); %钝化模糊PSFSharpened=imfilter(I,H);imwrite(Sharpened,'钝化模糊.tif'); %保存钝化模糊图像subplot(224);imshow(Sharpened);title('钝化模糊图像');原始图像运动模糊图像圆盘状模糊图像钝化模糊图像2、对图像Lena添加不同类型的噪声,对原图像及噪声图像进行比较(注明加入噪声的类型,及噪声参数),并保存噪声图像。

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

电子工程学院数字图像处理课程实验报告
g = imbinarize(f, T/255); %二值化图像阈值分割figure(1);
subplot(221);
imshow(f);
title('原图像');
subplot(222);
imshow(g);
title('basic global thresholding');
se=strel('ball',8,8); % 创建球体,半径8
f1=imdilate(I,se); %膨胀
subplot(223)
imshow(f1);title('膨胀后图像');
f2=imbinarize(f1); %二值化图像阈值分割subplot(224)
imshow(f2);title('分割标记后图像');
%Otsu方法二值化图像
I = imread('C:\picture\256.tif');
J = imnoise(I, 'salt & pepper',0.02); %添加噪声figure(2);
subplot(231);imshow(I);title('原图像');
subplot(232);imshow(J);title('加椒盐噪声后的图像'); k = medfilt2(J,[5 5]);
subplot(233);imshow(k);title('5x5模板中值滤波')
T=graythresh(k); %最大类间方差法找到图片的一个合适的阈值g=imbinarize(f,T);
subplot(234);imshow(g);title('Otsu方法二值化图像'); se=strel('ball',8,8); % 创建球体,半径8
f1=imdilate(I,se);
subplot(235)
imshow(f1);title('膨胀后图像');
f2=imbinarize(f1);
[f2,N]=bwlabel(f2,8);
subplot(236)
imshow(f2);title('分割标记后图像');
六、心得体会(思考与创新、建议等)
思考题:
1、除了形态学方法用其他方法如何实现图像分割?
答:阈值分割:图像分割的经典方法是基于灰度阈值的分割方法,它通过设置阈值,把像素点按灰度级分若干类,从而实现图像分割;
区域分割:利用的是图像的空间性质,认为分割出来的属于同一区域的像素应具有相似的性质;
运动分割:研究对象通常是图像序列,图像序列的每一幅为一帧,不同时刻采集的多帧图像中包含了存在于相机与景物之间的相对运动信息。

2、图像预处理的作用是什么?
图像预处理,是将每一个文字图像分检出来交给识别模块识别,这一过程称为图像预处理。

在图像分析中,对输入图像进行特征抽取、分割和匹配前所进行的处理。

主要目的是消除图像中无关的信息,恢复有用的真实信息,增强有关信息的可检测性和最大限度地简化数据,从而改进特征抽取、图像分割、匹配和识别的可靠性。

实验心得:
通过本次实验,使我更加深刻地理解和掌握图像分割的基本理论和算法同时练习使用形态学、阀值的相关知识点对图像进行分割处理;也对MATLAB的操作和基本功能更加熟悉。

相关文档
最新文档