基于MATLAB图像处理报告
- 格式:doc
- 大小:1.25 MB
- 文档页数:10
《数字图像处理实验报告》实验一图像的增强一.实验目的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.给定函数的累积直方图。
实验一、空域图像处理1、灰度线性变换:I=imread('trees.tif') ;figure(1) ; imshow(I) ; title('原图') ;J=double(I) ; %把I变成双精度并赋值给JJ=3*J+74 ; %对J进行线性变换J=uint8(J) ;figure(2) ; imshow(J) ; title('线性变换') ;图像:思考题:设定不同的斜率值和截距,显示效果会怎样?答:斜率增加,像素点的灰度值会根据本身的灰度值按比例增加,所以深色部分会变少,浅色部分会变多,整张图片上白色区域会变多;截距增加,所有像素点的灰度值都会增加,所以整张图片会变淡。
添加噪声:I=imread('trees.tif') ;M=imnoise(I,'salt & pepper',0.02) ; %添加椒盐噪声%因为每次添加椒盐噪声都是这两句代码,所以就不重复打出来了,直接看效果图下同~( ̄▽ ̄~)~~~图像:椒盐噪声+线性变换:椒盐噪声是随机产生的噪声,包括高灰度和低灰度的噪声。
线性变换基本上没有多少去噪的功能,更多的应该是用于改变对比度。
(中值)直方图均衡化:I=imread('rice.png') ;subplot(2,2,1) ; imshow(I) ; title('原图') ;subplot(2,2,3) ; imhist(I) ;J=double(I) ; %把I变成双精度并赋值给Jmax=J(1,1) ; min=J(1,1) %把J(1,1)赋值给max和min[N1,N2]=size(I) ; %得到矩阵I的行和列for i=1:N1for j=1:N2if J(i,j)>maxmax=J(i,j) ; %如果元素值大于max,则把元素值赋给maxendif J(i,j)<minmin=J(i,j) ; %如果元素值小于min,则把元素值赋给minendendendn=round((max+min))/2 ; %取元素最大值和最小值的中间值,即中间灰度值a=(255-max)/(max-n) ;b=min/(n-min) ;%根据原图中max和min,求得运算倍率a和b,以确保在接下来的运算中,原图像的max和min可以准确被定为到255和0for i=1:N1for j=1:N2if J(i,j)>=nJ(i,j)=J(i,j)+a*(J(i,j)-n) ;end%当元素灰度值大于或等于中间灰度值时,将该元素的灰度值变大if J(i,j)<nJ(i,j)=J(i,j)-b*(n-J(i,j)) ;end%当元素灰度值小于中间灰度值时,将该元素的灰度值变小endendK=uint8(real(J)) ;subplot(2,2,2) ; imshow(K) ;title('直方图均衡化') ;subplot(2,2,4) ; imhist(K) ;思考题:直方图均衡化是什么意思?它的主要用途是什么?答:直方图均衡化是将一副像素灰度级范围较窄的图像的像素灰度级的范围扩大并分布均匀。
matlab图像处理实验报告《Matlab图像处理实验报告》摘要:本实验报告通过使用Matlab软件进行图像处理实验,对图像进行了灰度化、二值化、边缘检测、图像增强等处理,通过实验结果分析,验证了Matlab在图像处理领域的实用性和有效性。
1. 实验目的本实验旨在通过Matlab软件进行图像处理实验,掌握图像处理的基本方法和技术,提高对图像处理算法的理解和应用能力。
2. 实验原理图像处理是对图像进行数字化处理的过程,主要包括图像获取、图像预处理、图像增强、图像分割和图像识别等步骤。
Matlab是一种功能强大的科学计算软件,具有丰富的图像处理工具箱,可用于图像的处理、分析和识别。
3. 实验内容(1)图像灰度化首先,通过Matlab读取一幅彩色图像,并将其转换为灰度图像。
利用Matlab 中的rgb2gray函数,将RGB图像转换为灰度图像,实现图像的灰度化处理。
(2)图像二值化接着,对灰度图像进行二值化处理,将图像转换为黑白二值图像。
利用Matlab 中的im2bw函数,根据设定的阈值对灰度图像进行二值化处理,实现图像的二值化处理。
(3)边缘检测然后,对二值图像进行边缘检测处理,提取图像的边缘信息。
利用Matlab中的edge函数,对二值图像进行边缘检测处理,实现图像的边缘检测处理。
(4)图像增强最后,对原始图像进行图像增强处理,改善图像的质量和清晰度。
利用Matlab 中的imadjust函数,对原始图像进行图像增强处理,实现图像的增强处理。
4. 实验结果分析通过实验结果分析,可以发现Matlab在图像处理领域具有较高的实用性和有效性。
通过Matlab软件进行图像处理实验,可以快速、方便地实现图像的处理和分析,提高图像处理的效率和精度,为图像处理技术的研究和应用提供了重要的工具和支持。
5. 结论本实验通过Matlab图像处理实验,掌握了图像处理的基本方法和技术,提高了对图像处理算法的理解和应用能力。
基于matlab的实验报告实验报告:基于MATLAB 的实验一、实验目的通过使用MATLAB 软件,掌握如何进行数据分析、图像处理、算法实现等一系列实验操作,提高实验者的实践能力和动手能力。
二、实验原理MATLAB 是一种在科学计算和技术开发领域广泛应用的计算机软件。
它能进行矩阵计算、绘制函数和数据图像、实现算法以及进行数据分析等。
通过掌握MATLAB 的使用,能够快速、高效地解决各种科学和工程问题。
三、实验内容1. 数据分析:使用MATLAB 的数据分析工具进行数据的导入、处理和分析。
2. 图像处理:利用MATLAB 的图像处理工具包对图像进行滤波、增强、分割等操作。
3. 算法实现:使用MATLAB 实现常用的算法,如排序、搜索、图像压缩等。
四、实验步骤1. 数据分析:(1)使用MATLAB 的读取数据函数将数据导入MATLAB 环境中。
(2)利用MATLAB 的数据处理函数进行数据清洗和预处理。
(3)使用MATLAB 的统计工具进行数据分析,如求平均值、标准差等。
(4)利用MATLAB 的绘图函数将分析结果可视化。
2. 图像处理:(1)使用MATLAB 的读取图像函数将图像导入MATLAB 环境中。
(2)利用MATLAB 的图像处理工具包进行滤波操作,如均值滤波、中值滤波等。
(3)使用MATLAB 的图像增强函数对图像进行锐化、变换等操作。
(4)利用MATLAB 的图像分割算法对图像进行分割。
3. 算法实现:(1)使用MATLAB 编写排序算法,如冒泡排序、快速排序等。
(2)使用MATLAB 编写搜索算法,如二分查找、线性搜索等。
(3)使用MATLAB 实现图像压缩算法,如离散余弦变换(DCT)。
五、实验结果实验中,我们使用MATLAB 完成了数据分析、图像处理和算法实现的一系列实验操作。
通过数据分析,我们成功导入了数据并对其进行了清洗和预处理,最后得到了数据的统计结果。
在图像处理方面,我们对图像进行了滤波、增强和分割等操作,最终得到了处理后的图像。
华东师范大学电子工程系2017.6实验1:图像灰度级修正【实验目的】掌握常用的图像灰度级修正方法(灰度变换法和直方图均衡化),加深对直方图的理解。
观察图像的增强效果,对灰度级修正前后的图像加以比较。
【实验内容】1)编程实现图像的灰度变换,改变图像的输入、输出映射参数范围(线性拉伸和反比);2)修改参数gamma值(大于、小于、等于1),观察处理结果;3)对图像直方图作均衡化处理,显示均衡前后的图像及其直方图。
【实验代码】original=imread('lena.bmp');linstr=imadjust(original,[0.3 0.7],[0 1]); %线性拉伸opposite=imadjust(original,[0 1],[1 0]); %反比above=imadjust(original,[0 1],[0 1],2); %gamma>1equal=imadjust(original,[0 1],[0 1],1); %gamma=1below=imadjust(original,[0 1],[0 1],0.5); %gamma<1subplot(3,3,1);imshow(original);title('原图像');subplot(3,3,2);imshow(linstr);title('线性拉伸');subplot(3,3,3);imshow(opposite);title('反比');subplot(3,3,4);imshow(above);title('gamma>1');subplot(3,3,5);imshow(equal);title('gamma=1');subplot(3,3,6);imshow(below);title('gamma<1');subplot(3,3,7);imhist(original);title('原图像直方图'); histequal=histeq(original);%对图像均衡化subplot(3,3,8);imshow(histequal);title('均衡后的图像'); subplot(3,3,9);imhist(histequal);title('均衡图像的直方图'); axis([0 256 0 2000]);【输出图像】【实验思考】根据以下图片以及实验结果可知gamma>1时图像整体变暗,灰度级整体变小;gamma<1时图像整体变亮,灰度级整体变小;而gamma=1时,图像维持不变。
图像处理实验报告实验⼀基于matlab 的⼈脸识别技术⼀、实验⽬的1.熟悉⼈脸识别的⼀般流程与常见识别⽅法;2.熟悉不同的特征提取⽅法在⼈脸识别的应⽤;3.了解在实际的⼈脸识别中,学习样本数等参数对识别率的影响;4.了解⾮⼈脸学习样本库的构建在⼈脸识别的重要作⽤。
使⽤MATLAB 平台编程,采⽤K-L 变换、特征提取及图像处理技术,实现⼈脸识别⼆、实验内容与实验仪器、设备1.构建⾮⼈脸学习样本库;2.观测不同的特征提取⽅法对⼈脸识别率的影响;3.观测不同的学习样本数对⼈脸识别率的影响;1. PC 机-系统最低配置 512M 内存、P4 CPU ;2. Matlab 仿真软件- 7.0 / 7.1 / 2006a 等版本的Matlab 软件。
3. CBCL ⼈脸样本库三、实验原理1.⼈脸特征提取的算法通过判别图像中所有可能区域是否属于“⼈脸模式”的⽅法来实现⼈脸检测。
这类⽅法有:特征脸法、⼈⼯神经⽹络法、⽀持向量机法;积分图像法。
本次使⽤的是PCA(主成分分析法)其原理是:利⽤K-L 变换抽取⼈脸的主要成分,构成特征脸空间,识别时将测试图像投影到此空间,得到⼀组投影系数,通过与各个⼈脸图像⽐较进⾏识别。
对于⼀幅M*N 的⼈脸图像,将其每列相连构成⼀个⼤⼩为D=M*N 维的列向量。
D 就是⼈脸图像的维数,即是图像空间的维数。
设n 是训练样本的数⽬;X j 表⽰第j 幅⼈脸图像形成的⼈脸向量,则所需样本的协⽅差矩阵为:1()()m Ti i i S x u x u ==--∑ (1)其中U 为训练样本的平均图像向量:11mi i u x n ==∑ (2)令A=[x 1-u,x 2-u,...x n -u],则有S r =AA T ,其维数为D ×D 。
根据K-L 变换原理,需要求得的新坐标系由矩阵AA T 的⾮零特征值所对应的特征向量组成。
直接计算的计算量⽐较⼤,所以采⽤奇异值分解(SVD)定理,通过求解A T A 的特征值和特征向量来获得AA T 的特征值和特征向量。
基于matlab的遥感图像处理程序报告南京理工大学电光学院,无履仙人一、程序简介基于matlab的GUI可视化遥感图像处理程序,界面布局如下图:菜单栏包括:文件,图像旋转,自动识别有效区域,获取有效区域,压缩,图像增强,伪彩色图像,还原重做,退出,关于等项。
主界面部分包含两个图像显示,和部分按钮及需要输入的参数。
由于界面大小有限,部分功能留在菜单栏中。
二、处理步骤及部分源码1、打开和保存文件首先是文件菜单,包含打开和保存,打开的文件将显示在原始图像和处理图像两部分中,在处理过程中,原始图像不变,以作为和处理图像对比,保存图片只保存处理后的图片,处理前的图片不做保存。
图片打开后如图所示,2、图像旋转由图可见图像有部分区域无有效信息,不利于处理和获得有效信息,故应去除,首先进行旋转,便于去除无效区域。
在旋转角度编辑栏内输入要旋转的角度然后点旋转按钮,进行旋转。
旋转后如图,图像旋转源码为:function imrotate_Callback(hObject, eventdata, handles)h=getappdata(handles.figure_demo,'img_2');x=get(handles.angle,'string');an=str2num(x);g=imrotate(h,an,'bilinear','crop');img_2=g;axes(handles.tag);imshow(img_2);setappdata(handles.figure_demo,'img_2',img_2);3。
、有效区域自动提取现在图中有效区域基本是在一个矩形内,可以通过算法将有效区域边界的坐标求出来,单击自动识别有效区域按钮,求出后显示在图片右边的静态文本框内。
如下图,图像自动识别有效区域源码如下,function auto_Callback(hObject, eventdata, handles)h=getappdata(handles.figure_demo,'img_2');[x,y]=size(h);flag=1;for i=1:xfor j=1:yif h(i,j)~=0&flag==1x1=i;flag=0;endif h(i,j)~=0x2=i;endendendfor j=1:yfor i=1:xif h(i,j)~=0&flag==0y1=j;flag=1;endif h(i,j)~=0y2=j;endendendset(handles.x_1,'String',num2str(x1));set(handles.x_2,'String',num2str(x2));set(handles.y_1,'String',num2str(y1));set(handles.y_2,'String',num2str(y2));y0=y2-y1;x0=x2-x1;rect=[y1,x1,y0,x0];setappdata(handles.figure_demo,'rect',rect);4、获取有效区域获得有效区域坐标后,就可以通过简单的命令获得遥感图像的有效区域了,单击菜单栏的“获取有效区域”按钮,就可获得。
实验一:图像文件类型转换实验目的:理解数字图像文件的几种基本类型掌握在MATLAB中进行图象文件类型转换的方法观察图象转换前后的效果加深对图象文件类型的理解熟悉图象格式、颜色系统间的转换实验内容:1)灰度图像与索引图像的相互转换2)RGB图像与索引图像的相互转换3)将图像转换为二值化图像实验方法:利用MATLAB工具进行实验一、灰度图像到索引图像的转换clear>> info=imfinfo('rice.png')info =Filename: 'rice.png'FileModDate: '26-Jan-2003 00:03:06'FileSize: 44607Format: 'png'FormatVersion: []Width: 256Height: 256BitDepth: 8ColorType: 'grayscale'FormatSignature: [137 80 78 71 13 10 26 10]Colormap: []Histogram: []InterlaceType: 'none'Transparency: 'none'SimpleTransparencyData: []BackgroundColor: []RenderingIntent: []Chromaticities: []Gamma: []XResolution: []YResolution: []ResolutionUnit: []XOffset: []YOffset: []OffsetUnit: []SignificantBits: []ImageModTime: '27 Dec 2002 19:57:12 +0000'Title: []Author: []Description: 'Rice grains'Copyright: 'Copyright The MathWorks, Inc.'CreationTime: []Software: []Disclaimer: []Warning: []Source: []Comment: []OtherText: []RGB=imread('rice.png');>> figure(3);>> imshow(RGB);>> figure(1);>> [RGB1,map1]=gray2ind(RGB,128);>> imshow(RGB1,map1);>> figure(2);>> [RGB2,map2]=gray2ind(RGB,16);>> imshow(RGB2,map2);>> imwrite(RGB1,map1,'3.bmp');>> imwrite(RGB2,map2,'4.bmp');图3 图1图2实验结果分析:从上述实验结果,我们可以看出灰度级不同,图像的亮度也不一样。
计算机图像处理实验报告学院:信息学院班级:姓名:学号:实验内容:数字图像处理1、应用MATLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换;(1)、显示一副真彩RGB图像代码:I=imread('mikasa.jpg');>>imshow(I);效果:(2)、RGB转灰度图像代码:graycat=rgb2gray(I);>> subplot(1,2,1);>> subimage(I);>> subplot(1,2,2);>> subimage(graycat);效果:(3)、RGB转索引图像代码:[indcat,map]=rgb2ind(I,0.7);>> subplot(1,2,1);>> subimage(I);>> subplot(1,2,2);>> subimage(indcat,map);效果:(4)、索引图像转RGB代码:I1=ind2rgb(indcat,map);>>subplot(1,2,1);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(I1);效果:(5)、索引转灰度图像代码:i2gcat=ind2gray(indcat,map);>>subplot(1,2,1);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(i2gcat);效果:(6)、灰度转索引图像代码:[g2icat,map]=gray2ind(graycat,64);>>subplot(1,2,1);>>subimage(graycat);>>subimage(g2icat,map);效果:(7)、RGB转二值图像代码:r2bwcat=im2bw(I,0.5);>>subplot(1,2,1);>>subimage(I);>>subplot(1,2,2);>>subimage(r2bwcat);效果:(8)灰度转二值图像代码:g2bwcat=im2bw(graycat,0.5); subplot(1,2,1);>>subimage(graycat);>>subplot(1,2,2);>>subimage(g2bwcat);效果:(9)、索引转二值图像代码:>> i2bwcat=im2bw(indcat,map,0.7);>>subimage(indcat,map);>>subplot(1,2,2);>>subimage(i2bwcat);效果:2、应用MATLAB工具箱演示一幅图像的傅里叶变换、离散余弦变换,观察其频谱图。
基于MATLAB图像处理报告一、设计题目图片叠加。
二、设计要求将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。
三、设计方案3.1、设计思路利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。
3.2、软件介绍MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载就可以用。
3.3、常见简单程序语句及算法分析(1)CLC;清零。
基于MATLAB图像处理报告
一、设计题目
图片叠加。
二、设计要求
将一幅礼花图片和一幅夜景图片做叠加运算,使达到烟花夜景的美图效果。
三、设计方案
3.1、设计思路
利用matlab强大的图像处理功能,通过编写程序,实现对两幅图片的像素进行线性运算,利用灰度变换的算法使图片达到预期的效果。
3.2、软件介绍
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。
是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户直接进行下载
就可以用。
3.3、常见简单程序语句及算法分析
(1)CLC;清零。
(2)CLEAR ;清内存。
(3)r=imread(‘路径\图片名.jpg’);读入一幅图片。
(4)imshow(r);显示图片r。
(5)g=rgb2gray(r);灰度转变。
(6)%imhist(g);g1=histeq(g);figure,imsho(g1);直方图均衡化。
(7)Imwrite(‘g1,路径\图片名.jpg’);保存图片。
3.4、图片叠加及灰度变换分析
程序1
[m,n,l]=size(C);
for i=1:m
for j=1:n
for k=1:l
D(i,j,k)=C(i,j,k)+ B(i,j,k);
end
end
end
此程序的主要功能是对两幅图片通过算法来实现叠加的效果,程序中的几个变量都是像素点的值,通过三个循环使得两幅图片对应的值线性相加,最大值应该是以255输出,超过255也是以255输出。
程序2
J = imadjust(I,[low_in high_in], [low_out high_out])
此程序变换的原理是:如果原图像f(x, y)的灰度范围是[m, M],我们希望对图像的灰度范围进行线性调整,调整后的图像g(x, y)的灰度范围是[n, N],那么下述变换:g(x,y)N n f(x,y)m n就可以实现这一要求。
MATLAB 图像处理工具箱中提供的imadjust函数,可以实现上述的线性变换对比度调整。
四、设计步骤
(1)处理之前,我们先来看看两幅原图,一幅是带有礼花的图片,另一幅是一幅东方明珠的夜景图。
图 1
图 2
通过图片我们发现,礼花的图片非常的亮,而夜景图则显得有些灰暗。
我们推测,如果让礼花和夜景的图片叠加到一起,会不会由于礼花的亮度太大而掩盖
了城市的夜光,达不到我们想要的效果。
(2)打开matlab图像处理软件,7.0及以上版本就可以,打开之后,显示界面如下(我的版本是2012b)。
图3
(3)新建script文件,点击’New script‘,或点击’New‘,选择script。
图4
(4)在打开的界面之中输入程序。
图片的位置是你所要用的图片的准确位
. 置,尽量写详细点,减少计算机的读取时间,加快读取速度。
如图所示。
图5
(5)点击运行按钮,即界面上的绿色按钮。
图6
(6)查看效果,如下图。
图7
通过处理后的图片,我们看到由于礼花太亮,完全将城市的夜景掩盖住了,效果不是太理想。
我们设想加入灰度变换函数,将礼花的图片变的暗一点,将夜景的亮度提高一点,看看效果怎么样,加入灰度变换程序,如下图。
图8
(7)软件调试后运行程序,如下图。
图9
结果显示加入灰度变换的函数之后,图片效果较之前好多了,达到了预期的目的。
五、软件代码
通过matlab进行图像处理,代码如下:
clear;
clc;
A=imread('C:\Users\Administrator\Desktop\作业\礼花.jpg');
C=imresize(A,[300,400]);
B=imread('C:\Users\Administrator\Desktop\作业\夜景提亮天空中加入礼花.jpg');
[m,n,l]=size(C);
for i=1:m
for j=1:n
for k=1:l
D(i,j,k)=C(i,j,k)+ B(i,j,k);
end
end
end
figure
imshow(D);
imwrite('C:\Users\Administrator\Desktop\作业\礼花效果图1.jpg') 调试之后的程序代码如下:
clear;
clc;
A=imread('C:\Users\Administrator\Desktop\作业\礼花.jpg');
B=imread('C:\Users\Administrator\Desktop\作业\夜景提亮天空中加入礼花.jpg');
A1=imadjust(A,[0,1],[0,0.9]);
B1=imadjust(B,[0.3,0.6],[0,1]);
C=imresize(A1,[300,400]);
[m,n,l]=size(C);
for i=1:m
for j=1:n
for k=1:l
D(i,j,k)=C(i,j,k)+ B1(i,j,k);
end
end
end
figure
imshow(D);
imwrite('C:\Users\Administrator\Desktop\作业\礼花效果图2.jpg') 处理后的图片如下:
图 10
六、结果分析
通过两幅图的对比,发现第二幅图片较第一幅,效果明显增强。
是由于加入灰度变换函数,使原图的灰度值发生变化,以达到实际的效果。
效果对比图11
七、心得体会
通过这次任务,以前在课堂上没太听明白怎么回事的东西,通过上网,查资料,以及用软件处理,通通实践了一遍,加深了对这门课程的认识和理解。
Matlab
是一款功能很强大的应用软件,它不仅可以对图像进行处理,而且可以进行各种数字计算和符号计算功能,具有绘图功能,语言体系等等。
这次的任务我们乐在其中,喜悦的是看到了成果,内心充满了满足感和成就感,就如同看到了图片中的烟花,有种过年的感觉。
不过这些都只是皮毛而已,要想真正地掌握它,还得更进一步地学习理论知识。
参考文献:
【冈萨雷斯数字图像处理(MATLAB版)】[美] RafaelC.Gonzalez RichardE.Woods StevenL.Eddins 著电子工业出版社。
【数字图像处理及MATLAB实现】杨杰主编电子工业出版社。