matlab 图像处理报告

合集下载

matlab数字图像处理实验报告

matlab数字图像处理实验报告
Z2=imsubtract(A,B)
Z3=immultiply(A,B)
Z4=imdivide(A,B)
subplot(3,2,1); imshow(A);title('原图像A') subplot(3,2,2); imshow(B);title('原图像B') subplot(3,2,3); imshow(Z1);title('加法图像') subplot(3,2,4); imshow(Z2);title('减法图像') subplot(3,2,5); imshow(Z3);title('乘法图像') subplot(3,2,6); imshow(Z2);title('除法图像')
h=fspecial('average');%均值滤波器
3基于卷积的图像滤波函数
imfilter函数,filter2函数,二维卷积conv2滤波,都可用于图像滤波, 用法类似,如:
i=imread('e:\w01.tif');
j=filter2(h,i);
或者:
h=fspecial(‘prewitt')
用法:BW = edge(l,'sobel',thresh,direction),
I为检测对象;边缘检测算子可用sobel,roberts,prewitt,zerocross,log,canny;
thresh指定阈值,检测时忽略所有小于阈值的边缘,默认自动选择阈值;direction方向,在所指定的方向direction上,用算子进行边缘检测horizontal(水平方向)、vertical(垂直方向)或both(两个方向)。

湖南大学医学影像学实验之matlab图像处理实验报告

湖南大学医学影像学实验之matlab图像处理实验报告

实验一、空域图像处理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图像处理实验报告》摘要:本实验报告通过使用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图像处理实验,掌握了图像处理的基本方法和技术,提高了对图像处理算法的理解和应用能力。

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

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

数字图像处理实验指导书学院:通信与电子工程学院专业:电子信息工程班级:学号:姓名: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类,则像素取值就是浮点数。

图像处理实验报告

图像处理实验报告

图像处理实验报告实验⼀基于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数字图像处理初步一、显示图像1.利用imread()函数读取一幅图像,假设其名为lily、tif,存入一个数组中;2。

利用whos命令提取该读入图像flower、tif得基本信息;3.利用imshow()函数来显示这幅图像;实验结果如下图:源代码:>〉I=imread('lily、tif’)>〉whos I>> 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’)>> imfinfo’lily、tif’;>〉imwrite(I,'lily、jpg',’quality',20);〉> imwrite(I,’lily、bmp’);7~9 〉〉I=imread('Sunset、jpg');>>J=imread('Winter、jpg’)>>imfinfo ’Sunset、jpg'>> imfinfo'Winter、jpg’〉〉figure(1),imshow(’Sunset、jpg’)>>figure(2),imshow('Winter、jpg’)三、二值化图像10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像得特征。

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\');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 1962.给定函数的累积直方图。

基于matlab的遥感图像处理程序

基于matlab的遥感图像处理程序

基于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计算机图像处理实验报告

东北大学matlab计算机图像处理实验报告

计算机图像处理实验报告学院:信息学院班级:姓名:学号:实验内容:数字图像处理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程序【完整版】

(完整版)数字图像处理MATLAB程序【完整版】

第一部分数字图像处理实验一图像的点运算实验1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备1.PC机一台;2.软件matlab。

三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察图像matlab环境下的直方图分布。

(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码;2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。

实验1.2 灰度均衡一.实验目的1.熟悉matlab图像处理工具箱中灰度均衡函数的使用;2.理解和掌握灰度均衡原理和实现方法;二.实验设备1.PC机一台;2.软件matlab;三.程序设计在matlab环境中,程序首先读取图像,然后调用灰度均衡函数,设置相关参数,再输出处理后的图像。

I=imread('cameraman.tif');%读取图像subplot(2,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(2,2,3),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题a=histeq(I,256); %直方图均衡化,灰度级为256subplot(2,2,2),imshow(a) %输出均衡化后图像title('均衡化后图像') %在均衡化后图像中加标题subplot(2,2,4),imhist(a) %输出均衡化后直方图title('均衡化后图像直方图') %在均衡化后直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。

数字图像处理课程设计报告matlab

数字图像处理课程设计报告matlab

数字图像处理课程设计报告姓名:学号:班级: .net设计题目:图像处理教师:赵哲老师提交日期: 12月29日一、设计内容:主题:《图像处理》详细说明:对图像进行处理(简单滤镜,模糊,锐化,高斯模糊等),对图像进行处理(上下对称,左右对称,单双色显示,亮暗程度调整等),对图像进行特效处理(反色,实色混合,色彩平衡,浮雕效果,素描效果,雾化效果等),二、涉及知识内容:1、二值化2、各种滤波3、算法等三、设计流程图四、实例分析及截图效果:运行效果截图:第一步:读取原图,并显示close all;clear;clc;% 清楚工作窗口clc 清空变量clear 关闭打开的窗口close allI=imread('1.jpg');% 插入图片1.jpg 赋给Iimshow(I);% 输出图II1=rgb2gray(I);%图片变灰度图figure%新建窗口subplot(321);% 3行2列第一幅图imhist(I1);%输出图片title('原图直方图');%图片名称一,图像处理模糊H=fspecial('motion',40);%% 滤波算子模糊程度40 motion运动q=imfilter(I,H,'replicate');%imfilter实现线性空间滤波函数,I图经过H滤波处理,replicate反复复制q1=rgb2gray(q);imhist(q1);title('模糊图直方图');二,图像处理锐化H=fspecial('unsharp');%锐化滤波算子,unsharp不清晰的qq=imfilter(I,H,'replicate');qq1=rgb2gray(qq);imhist(qq1);title('锐化图直方图');三,图像处理浮雕(来源网络)%浮雕图l=imread('1.jpg');f0=rgb2gray(l);%变灰度图f1=imnoise(f0,'speckle',0.01);%高斯噪声加入密度为0.01的高斯乘性噪声 imnoise噪声污染图像函数 speckle斑点f1=im2double(f1);%把图像数据类型转换为双精度浮点类型h3=1/9.*[1 1 1;1 1 1;1 1 1];%采用h3对图像f2进行卷积滤波f4=conv2(f1,h3,'same');%进行sobel滤波h2=fspecial('sobel');g3=filter2(h2,f1,'same');%卷积和多项式相乘 same相同的k=mat2gray(g3);% 实现图像矩阵的归一化操作四,图像处理素描(来源网络)f=imread('1.jpg');[VG,A,PPG] = colorgrad(f);ppg = im2uint8(PPG);ppgf = 255 - ppg;[M,N] = size(ppgf);T=200;ppgf1 = zeros(M,N);for ii = 1:Mfor jj = 1:Nif ppgf(ii,jj)<Tppgf1(ii,jj)=0;elseppgf1(ii,jj)=235/(255-T)*(ppgf(ii,jj)-T);endendendppgf1 = uint8(ppgf1);H=fspecial('unsharp');Motionblur=imfilter(ppgf1,H,'replicate');figure;imshow(ppgf1);调用function [VG, A, PPG] = colorgrad(f, T)if (ndims(f)~=3) || (size(f,3)~=3)error('Input image must be RGB');endsh = fspecial('sobel');sv = sh';Rx = imfilter(double(f(:,:,1)), sh, 'replicate');Ry = imfilter(double(f(:,:,1)), sv, 'replicate');Gx = imfilter(double(f(:,:,2)), sh, 'replicate');Gy = imfilter(double(f(:,:,2)), sv, 'replicate');Bx = imfilter(double(f(:,:,3)), sh, 'replicate');By = imfilter(double(f(:,:,3)), sv, 'replicate');gxx = Rx.^2 + Gx.^2 + Bx.^2;gyy = Ry.^2 + Gy.^2 + By.^2;gxy = Rx.*Ry + Gx.*Gy + Bx.*By;A = 0.5*(atan(2*gxy./(gxx-gyy+eps)));G1 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A));A = A + pi/2;G2 = 0.5*((gxx+gyy) + (gxx-gyy).*cos(2*A) + 2*gxy.*sin(2*A)); G1 = G1.^0.5;G2 = G2.^0.5;VG = mat2gray(max(G1, G2));RG = sqrt(Rx.^2 + Ry.^2);GG = sqrt(Gx.^2 + Gy.^2);BG = sqrt(Bx.^2 + By.^2);PPG = mat2gray(RG + GG + BG);if nargin ==2VG = (VG>T).*VG;PPG = (PPG>T).*PPG;endf1=rgb2gray(f);imhist(f1);title('素描图直方图');五,图像处理实色混合(来源网络)%实色混合I(I<=127)=0; %对像素进行处理,若值小于等于127,置0 I(I>127)=255; %对像素进行处理,若值大于127,置255 imshow(I);title('像素图');I1=rgb2gray(f);imhist(I1);title('像素图直方图');六,图像处理反色图f=imread('1.jpg');q=255-q;imshow(q);title('反色图');imhist(q1);title('反色图直方图');七,图像处理上下对称A=imread('1.jpg');B=A;[a,b,c]=size(A);a1=floor(a/2); b1=floor(b/2); c1=floor(c/2);B(1:a1,1:b,1:c)=A(a:-1:a-a1+1,1:b,1:c);figureimshow(B)title('上下对称');A=rgb2gray(A);figureimhist(A)title('上下对称直方图');八,图像处理类左右对称C=imread('1.jpg');A=C;C(1:a,1:b1,1:c)=A(1:a,b:-1:b+1-b1,1:c);figureimshow(C)title('左右对称');A=rgb2gray(A);figureimhist(A);title('左右对称直方图');九,图像处理单双色显示a=imread('1.jpg');a1=a(:,:,1);a2=a(:,:,2); a3=a(:,:,3);aa=rgb2gray(a);a4=cat(3,a1,aa,aa); a5=cat(3,a1,a2,aa);figuresubplot(121);imshow(a4);title('单色显示');subplot(122);imshow(a5);title('双色显示');a4=rgb2gray(a4);a5=rgb2gray(a5);figuresubplot(121);imhist(a4);title('单色显示直方图');subplot(122);imhist(a5);title('双色显示直方图');十,图像处理亮暗度调整a=imread('1.jpg');a1=0.8*a;figuresubplot(121);imshow(a1);title('暗图');subplot(122);imshow(a2);title('亮图')q3=rgb2gray(a1);q4=rgb2gray(a2);figuresubplot(121);mhist(q3);title('暗图直方图') subplot(122);imhist(q4);title('亮图直方图')十一,图像处理雾化处理q=imread('1.jpg');m=size(q,1);n=size(q,2);r=q(:,:,1);g=q(:,:,2);b=q(:,:,3);for i=2:m-10for j=2:n-10k=rand(1)*10;%产生一个随机数作为半径di=i+round(mod(k,33));%得到随机横坐标dj=j+round(mod(k,33));%得到随机纵坐标r(i,j)=r(di,dj);%将原像素点用随机像素点代替 g(i,j)=g(di,dj);b(i,j)=b(di,dj);endenda(:,:,1)=r;a(:,:,2)=g;a(:,:,3)=b;imshow(a)title('雾化处理图');q=rgb2gray(a);figureimhist(q);title('雾化处理图直方图');十二,图像处理高斯滤波I = imread('1.jpg');G =fspecial('gaussian', [5 5], 2);% fspecial生成一个高斯滤波器Ig =imfilter(I,G,'same');%imfilter使用该滤波器处理图片imshow(Ig);title('高斯滤波');I1=rgb2gray(Ig);imhist(I1);title('高斯滤波直方图');十三,图像处理色彩平衡(来自网络)im=imread('1.jpg');im2=im;%存储元图像im1=rgb2ycbcr(im);%将im RGB图像转换为YCbCr空间。

MATLAB实验报告3

MATLAB实验报告3

MATLAB实验报告3MATLAB实验报告3一、实验目的1.掌握MATLAB程序的调试方法;2.掌握MATLAB中的矩阵操作;3.熟悉MATLAB中处理图像的基本操作。

二、实验内容1.用MATLAB调试程序;2.用MATLAB进行矩阵运算;3.用MATLAB处理图像。

三、实验原理及步骤1.MATLAB程序的调试方法在MATLAB中调试程序可以采用设置断点、逐行运行、单步调试等方法。

设置断点可以在程序中的其中一行上点击左键,会出现一个红色的圆点表示断点已设置。

逐行运行可以通过点击Editor界面上的运行按钮实现。

单步调试可以通过点击断点所在行的左侧按钮实现。

2.矩阵运算在MATLAB中,对于矩阵的运算可以使用一些基本的函数,如矩阵加法、减法、乘法等。

矩阵加法可以使用"+"操作符实现,减法可以使用"-"操作符实现,乘法可以使用"*"操作符实现。

另外,MATLAB还提供了一些更复杂的矩阵运算函数,如矩阵的转置、逆等。

3.图像处理在MATLAB中,可以使用imread函数加载图像文件,使用imshow函数显示图像,使用imwrite函数保存图像。

另外,还可以使用一些图像处理函数对图像进行处理,如灰度化、二值化、平滑滤波等。

四、实验步骤1.调试程序首先,在MATLAB的Editor界面中打开要调试的程序文件。

然后,在程序的其中一行上点击左键,即设置了一个断点。

最后,点击运行按钮,程序会在断点处停下,然后可以通过单步调试和逐行运行来逐步查看程序的执行过程和变量的取值。

2.矩阵运算首先,定义两个矩阵A和B,并赋值。

然后,使用"+"操作符对两个矩阵进行相加,得到矩阵C。

最后,使用disp函数显示矩阵C的值。

3.图像处理首先,使用imread函数加载一张图像。

然后,使用imshow函数显示加载的图像。

接着,使用rgb2gray函数将彩色图像转换为灰度图像。

matlab图像处理综合实验实验报告

matlab图像处理综合实验实验报告

《数字图像处理》实验报告学院:专业:班级:姓名:学号:实验一实验名称:图像增强实验目的:1.熟悉图像在Matlab下的读入,输出及显示;2.熟悉直方图均衡化;3.熟悉图像的线性指数等;4.熟悉图像的算术运算及几何变换.实验仪器:计算机,Matlab软件实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。

图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。

空间域的增强主要有:灰度变换和图像的空间滤波。

图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。

实验内容如下:I=imread('E:\cs.jpg');%读取图像subplot(2,2,1),imshow(I),title('源图像')J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J) %输出图像title('灰度图像') %在原始图像中加标题subplot(2,2,3),imhist(J) %输出原图直方图title('原始图像直方图')0100200subplot(1,2,2),imshow(K)对数运算:I=imread('E:\dog.jpg');subplot(2,2,1),imshow(I),title('源图像')J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J),title('灰度变换后图像') J1=log(1+double(J));subplot(2,2,3),imshow(J1,[]),title('对数变换后')指数运算:I=imread('E:\dog.jpg');f=double(I);g=(2^2*(f-1))-1f=uint8(f);g=uint8(g);subplot(1,2,1);subimage(f),title('变换一') subplot(1,2,2);subimage(g),title('变换二')100 200 300100 200 300加法运算:clc;clear all;close all;i = imread('E:\dog.jpg');j = imnoise(i,'gaussian',0,0.02); subplot(1,3,1),imshow(i),title('图一') subplot(1,3,2),imshow(j),title('图二') k=zeros(242,308);for p=1:100j = imnoise(i,'gaussian',0,0.02);j1 = im2double(j);k = k + j1;endk=k/100;subplot(1,3,3),imshow(k),title('图三')实验二实验名称:图像变换实验目的:(1)进一步对matlab的了解和使用;(2)学习如何在matlab中对数字图像的处理;实验原理:图像和其他信号一样,既能在空间域处理,也能在频率域处理。

matlab图像处理小结

matlab图像处理小结

1.function [center, r] = solve_circle(pt1, pt2, pt3)2.%Effect: solve the circle which across points 'pt1', 'pt2' and 'pt3'3.%Inputs:4.%pt1, pt2, pt3: [x, y]5.%center: the circle center [x0; y0]6.%r: the radius of the circle7.%Author: Su dongcai at 2012/1/28. A = zeros(2, 2); B = zeros(2, 1);9.[A(1, :), B(1)] = circle2line(pt1, pt2);10.[A(2, :), B(2)] = circle2line(pt2, pt3);11.center = A\B;12.r = norm(pt1' - center);13.14.function [A, B] = circle2line(pt1, pt2)15.%Effect: cast 2 circles equation into 1 linear equation:16.%(a-x1)^2 + (b-y1)^2 = r^2 |17.% |==> 2(x1-x2)a + 2(y1-y2)b = (x1^2 + y1^2) - (y2^2 + y2^2)18.%(a-x2)^2 + (b-y2)^2 = r^2 |19.%Inputs:20.%pt1, pt2: [x1, y1], [x2, y2]21.%Outputs:22.%A: 2[x1-x2, y1-y2]23.%B: (x1^2 + y1^2) - (x2^2 + y2^2)24.%Author: Su dongcai at 2012/1/225.A = 2*(pt1 - pt2);26.B = norm(pt1)^2 - norm(pt2)^2;close all;clear;clc;>> i=imread('rice.png');%>> imshow(i);>> background=imopen(i,strel('disk',15));>> i2=imsubtract(i,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> [labeled,numobjects]=bwlabel(bw,4);graindata=regionprops(labeled,'all');close all;clear;clc;i=imread('rice.png');background=imopen(i,strel('disk',15));i2=imsubtract(i,background);i3=imadjust(i2,stretchlim(i2),[0 1]);level=graythresh(i3);bw=im2bw(i3,level);[labeled,numobjects]=bwlabel(bw,4);data=regionprops(labeled,'all');%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%2006.6.2close all;clear;clc;>> i=imread('r.jpg');%>> figure,imshow(i);>> imgray=rgb2gray(i);>> figure,imshow(imgray)>> background=imopen(imgray,strel('disk',15));>> i2=imsubtract(imgray,background);%>> figure,imshow(i2);>> i3=imadjust(i2,stretchlim(i2),[0 1]);%>> figure,imshow(i3);>> level=graythresh(i3);>> bw=im2bw(i3,level);%>> figure,imshow(bw);>> imnobord=imclearborder(bw,4);%>> figure,imshow(imnobord);>> [labeled,numobjects]=bwlabel(bw,4);>> rgb_label=label2rgb(labeled,@spring,'c','shuffle');>> figure,imshow(rgb_label);>> graindata=regionprops(labeled,'all');hold on;for k=1:numobjectslab=sprintf('%d',k);text(graindata(k).Centroid(1),graindata(k).Centroid(2),lab,'Color','k'); endhold off;%剔除碎米粒>> idxdown=find([graindata.Area]<150); %剔除碎米粒little=ismember(labeled,idxdown);figure,imshow(little);[lab_little,num_little]=bwlabel(little,4);rgb_little=label2rgb(lab_little,@spring,'c','shuffle');figure,imshow(rgb_little);little_data=regionprops(lab_little,'all');hold on;for k=1:num_littlelab=sprintf('%d',k);text(little_data(k).Centroid(1),little_data(k).Centroid(2),lab,'Color','k'); endhold off;%>> graindata(idxdown,:)=[];%剔除碎米粒%剔除连接米粒>> idxup=find([graindata.Area]>250); %剔除连接米粒big=ismember(labeled,idxup);figure,imshow(big);[lab_big,num_big]=bwlabel(big,4);rgb_big=label2rgb(lab_big,@spring,'c','shuffle');figure,imshow(rgb_big);big_data=regionprops(lab_big,'all');hold on;for k=1:num_biglab=sprintf('%d',k);text(big_data(k).Centroid(1),big_data(k).Centroid(2),lab,'Color','k');endhold off;%>> graindata(numup,:)=[];%剔除连接米粒%获取完整米粒idxsuit=find([graindata.Area]>=150&[graindata.Area]<=250);suit=ismember(labeled,idxsuit);figure,imshow(suit); %获取完整米粒[lab_suit,num_suit]=bwlabel(suit,4);suit_data=regionprops(lab_suit,'all');hold on;for k=1:num_suitsignature=sprintf('%d',k);text(suit_data(k).Centroid(1),suit_data(k).Centroid(2),signature,'Color','r'); endhold off;%获取完整米粒whos graindatawhos little_datawhos big_datawhos suit_data>> graindata>> mean([graindata.Area])>> mean([graindata.Eccentricity])>> mean([graindata.MajorAxisLength])>> mean([graindata.MinorAxisLength])>> mean([graindata.EquivDiameter])>> figure,hist([graindata.Area],20);>> figure,hist([graindata.Eccentricity],20);>> figure,hist([graindata.MajorAxisLength],20);>> figure,hist([graindata.MinorAxisLength],20);>> figure,hist([graindata.EquivDiameter],20);data=[graindata.Area]data=[graindata.Centroid]data=[graindata.BoundingBox]data=[graindata.SubarrayIdx]data=[graindata.MajorAxisLength]data=[graindata.MinorAxisLength]data=[graindata.Eccentricity]data=[graindata.Orientation]data=[graindata.ConvexHull]data=[graindata.ConvexImage]data=[graindata.ConvexArea]data=[graindata.Image]data=[graindata.FilledImage]data=[graindata.FilledArea]data=[graindata.EulerNumber]data=[graindata.Extrema]data=[graindata.EquivDiameter]data=[graindata.Solidity]data=[graindata.Extent]data=[graindata.PixelIdxList]data=[graindata.PixelList]Area 计算各个连通区域中的象素总数BoundingBox 包含相应区域的最小矩形Centroid 给出每个区域的质心MajorAxisLength 与区域具有相同标准二阶中心矩(又叫标准差)的椭圆的长轴长度MinorAxisLength 与区域具有相同标准二阶中心矩的椭圆的短轴长度Eccentricity 与区域具有相同标准二阶中心矩的椭圆的离心率Orientation 与区域具有相同标准二阶中心矩的椭圆的长轴与x轴的交角Image 二值图像,与某区域具有相同大小的逻辑矩阵。

matlab图像处理实验报告

matlab图像处理实验报告

matlab图像处理实验报告Matlab图像处理实验报告引言:图像处理是一门研究如何对图像进行获取、存储、传输、处理和显示的学科。

而Matlab作为一种强大的科学计算软件,被广泛应用于图像处理领域。

本实验报告旨在介绍Matlab在图像处理中的应用。

一、图像获取与显示在图像处理的第一步,我们需要获取图像并进行显示。

Matlab提供了丰富的函数和工具箱来实现这一目标。

我们可以使用imread函数来读取图像文件,imwrite函数来保存图像文件。

而imshow函数则可以用于图像的显示。

通过使用这些函数,我们可以轻松地加载图像文件,并在Matlab中显示出来。

二、图像的基本操作在图像处理中,我们经常需要对图像进行一些基本的操作,如图像的缩放、旋转、裁剪等。

Matlab提供了一系列的函数来实现这些操作。

通过imresize函数,我们可以实现图像的缩放操作。

而imrotate函数则可以用于图像的旋转。

此外,imcrop函数可以用于图像的裁剪。

三、图像的滤波处理图像的滤波处理是图像处理中的重要内容之一。

Matlab提供了多种滤波函数,如均值滤波、中值滤波、高斯滤波等。

这些滤波函数可以用于图像的平滑处理和噪声的去除。

通过调用这些函数,我们可以有效地改善图像的质量。

四、图像的边缘检测边缘检测是图像处理中的一项重要任务,它可以用于提取图像中的边缘信息。

在Matlab中,我们可以使用多种边缘检测算法来实现这一目标,如Sobel算子、Prewitt算子、Canny算子等。

这些算子可以有效地提取图像中的边缘,并将其显示出来。

五、图像的特征提取图像的特征提取是图像处理中的关键步骤之一,它可以用于提取图像中的重要特征。

在Matlab中,我们可以使用各种特征提取算法来实现这一目标,如颜色直方图、纹理特征、形状特征等。

通过提取这些特征,我们可以对图像进行分类、识别等任务。

六、图像的分割与识别图像的分割与识别是图像处理中的热门研究方向之一。

河北工业大学数字图像处理之matlab实验报告

河北工业大学数字图像处理之matlab实验报告

实验一一、实验要求1、熟悉MATLAB软件的开发环境、基本操作以及图像处理工具箱,为编写图像处理程序奠定基础。

2、掌握二进制(黑白)图像、灰度图像、彩色图像读、写和显示的基本方法,分别选择以上几种类型的图像,观察其图像类型参数。

3、说明以下程序的显示结果为何是一幅几乎全黑的图像。

clear; close all;myi=zeros(20,20);myi(2:2:18,2:2:18)=1;myi=uint8(myi);figure, imshow(myi,'notruesize');编写程序将图一中orangutan_1.tif图片拉伸一倍后形成orangutan_2.tif所示的图片。

4、应用MATLAB(或C)语言编写一幅灰度图像直方图统计程序,并选择一幅图像显示其直方图,将结果与MATLAB图像处理工具箱中提供的灰度直方图函数imhist的处理结果进行比较。

5、利用以上编写的程序,估算图一所示图像iris.tif中的瞳孔半径(以像素为单位)。

orangutan_1.tif orangutan_2.tif iris.tif图一二、实验内容1,通过安装matlab软件,熟悉MATLAB软件的开发环境、基本操作以及图像处理工具箱2,图像的读、写、显示和图像类型参数查看通过 I= imread(FILENAME),读取图像,注意FILENAME=‘图像文件所在的位置+文件名’;1)通过imwrite(a,FILENAME,fmt),可以把a图像写进FILENAME图像,即是替换掉FILENAME,但是文件图像格式不替换。

2)通过imshow(I),可以把I图像显示出来。

3)例如:在matlab软件中,运行如下命令:I = imread('E:\orangutan_2.tif');figure,imshow(I)I1 = imread('E:\iris.tif');figure,imshow(I1)imwrite(I,'E:\iris.tif','tif')I2 = imread('E:\iris.tif');figure,imshow(I2)原图:orangutan_2.tif iris.tif运行结果:可以看到orangutan_2.tif已成功写入 iris.tif中。

matlab图像处理综合实验实验报告

matlab图像处理综合实验实验报告

《数字图像处理》实验报告学院:专业:班级:姓名:学号:实验一实验名称:图像增强实验目的:1.熟悉图像在Matlab下的读入,输出及显示;2.熟悉直方图均衡化;3.熟悉图像的线性指数等;4.熟悉图像的算术运算及几何变换.实验仪器:计算机,Matlab软件实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。

图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。

空间域的增强主要有:灰度变换和图像的空间滤波。

图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。

实验内容如下:I=imread('E:\cs.jpg');%读取图像subplot(2,2,1),imshow(I),title('源图像')J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J) %输出图像title('灰度图像') %在原始图像中加标题subplot(2,2,3),imhist(J) %输出原图直方图title('原始图像直方图')0100200几何运算:I=imread('E:\cs.jpg');%subplot(1,2,1),imshow(I); theta = 30;K = imrotate(I,theta); subplot(1,2,2),imshow(K)对数运算:I=imread('E:\dog.jpg');subplot(2,2,1),imshow(I),title('源图像') J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J),title('灰度变换后图像') J1=log(1+double(J));subplot(2,2,3),imshow(J1,[]),title('对数变换后') 指数运算:I=imread('E:\dog.jpg'); f=double(I); g=(2^2*(f-1))-1 f=uint8(f); g=uint8(g);subplot(1,2,1);subimage(f),title('变换一') subplot(1,2,2);subimage(g),title('变换二')加法运算:clc;clear all;close all; i = imread('E:\dog.jpg');j = imnoise(i,'gaussian',0,0.02);subplot(1,3,1),imshow(i),title('图一') subplot(1,3,2),imshow(j),title('图二') k=zeros(242,308); for p=1:100j = imnoise(i,'gaussian',0,0.02); j1 = im2double(j); k = k + j1; end k=k/100;subplot(1,3,3),imshow(k),title('图三')变换一200400600100200300400500变换二200400600100200300400500实验二实验名称:图像变换实验目的:(1)进一步对matlab的了解和使用;(2)学习如何在matlab中对数字图像的处理;实验原理:图像和其他信号一样,既能在空间域处理,也能在频率域处理。

matlab实验报告实验二

matlab实验报告实验二

matlab实验报告实验二Matlab实验报告实验二引言Matlab是一种功能强大的数学软件,广泛应用于科学研究和工程实践中。

在实验二中,我们将探索Matlab的图像处理功能,并通过实际案例来展示其应用。

图像处理基础图像处理是指对图像进行数字化处理的过程,其目的是改善图像质量、提取有用信息或实现特定的应用需求。

在Matlab中,我们可以利用各种函数和工具箱来实现图像处理的各种任务,如图像增强、滤波、分割和特征提取等。

实验步骤1. 图像读取与显示在Matlab中,我们可以使用imread函数读取图像文件,并使用imshow函数将图像显示在屏幕上。

例如,我们可以读取一张名为"lena.jpg"的图像,并显示出来:```matlabimg = imread('lena.jpg');imshow(img);```2. 图像灰度化图像灰度化是将彩色图像转换为灰度图像的过程。

在Matlab中,我们可以使用rgb2gray函数将彩色图像转换为灰度图像。

例如,我们可以将上一步读取的图像转换为灰度图像:```matlabgray_img = rgb2gray(img);imshow(gray_img);```3. 图像二值化图像二值化是将灰度图像转换为二值图像的过程,其中只包含黑色和白色两种颜色。

在Matlab中,我们可以使用imbinarize函数将灰度图像二值化。

例如,我们可以将上一步得到的灰度图像二值化:```matlabbinary_img = imbinarize(gray_img);imshow(binary_img);```4. 图像平滑图像平滑是指去除图像中的噪声或细节,使得图像更加平滑和清晰。

在Matlab 中,我们可以使用imfilter函数对图像进行平滑处理。

例如,我们可以对上一步得到的二值图像进行平滑处理:```matlabsmooth_img = imfilter(binary_img, fspecial('average'));imshow(smooth_img);```5. 图像边缘检测图像边缘检测是指提取图像中物体边缘的过程,常用于目标检测和图像分割。

matlab 图像 实验报告

matlab 图像 实验报告

matlab 图像实验报告Matlab图像实验报告引言:Matlab是一种强大的计算机编程语言和开发环境,广泛应用于科学计算、数据分析和图像处理等领域。

本实验报告旨在介绍基于Matlab的图像处理实验,包括图像读取、图像处理和图像显示等方面的内容。

一、图像读取图像读取是图像处理的第一步,通过读取图像可以获取图像的像素信息。

在Matlab中,可以使用imread函数来读取图像文件。

例如,通过以下代码可以读取一张名为"image.jpg"的图像:```matlabimage = imread('image.jpg');```二、图像处理1. 灰度化处理灰度化处理是将彩色图像转换为灰度图像的过程。

在Matlab中,可以使用rgb2gray函数来实现灰度化处理。

以下是一个简单的示例:```matlabgray_image = rgb2gray(image);```2. 图像增强图像增强是通过一系列的处理方法来改善图像的质量和视觉效果。

在Matlab中,有多种图像增强方法可供选择,如直方图均衡化、滤波和边缘检测等。

以下是一个直方图均衡化的示例:```matlabenhanced_image = histeq(gray_image);```3. 图像分割图像分割是将图像划分为若干个区域的过程,每个区域具有相似的特征。

在Matlab中,可以使用各种图像分割算法,如阈值分割和基于区域的分割。

以下是一个简单的阈值分割示例:```matlabthreshold = graythresh(enhanced_image);binary_image = imbinarize(enhanced_image, threshold);```三、图像显示图像显示是将处理后的图像展示给用户的过程。

在Matlab中,可以使用imshow函数来显示图像。

以下是一个简单的示例:```matlabimshow(binary_image);```四、实验结果与讨论本次实验中,我们选择了一张名为"image.jpg"的彩色图像进行处理。

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

《 MATLAB 实践》课程设计学生姓名:学号:专业班级:指导教师:二○○九年三月十三日1.设计目的…………………………………………………第 3页2.题目分析…………………………………………………第3 页3.总体设计…………………………………………………第4 页4.具体设计…………………………………………………第 6页5.结果分析…………………………………………………第 20页6.心得体会…………………………………………………第 20页7.参考书目…………………………………………………第 20页1 课程设计的目的:综合运用MATLAB工具箱实现图像处理的GUI程序设计。

2、题目分析课程设计的基本要求1)熟悉和掌握MATLAB 程序设计方法2)掌握MATLAB GUI 程序设计3)学习和熟悉MATLAB图像处理工具箱4)学会运用MATLAB工具箱对图像进行处理和分析课程设计的内容学习MATLAB GUI程序设计,利用MATLAB图像处理工具箱,设计和实现自己的Photoshop 。

要求:按照软件工程方法,根据需求进行程序的功能分析和界面设计,给出设计详细说明。

然后按照自己拟定的功能要求进行程序设计和调试。

以下几点是程序必须实现的功能。

1)图像的读取和保存。

2)设计图形用户界面,让用户能够对图像进行任意的亮度和对比度变化调整,显示和对比变换前后的图像。

3)设计图形用户界面,让用户能够用鼠标选取图像感兴趣区域,显示和保存该选择区域。

4)编写程序通过最近邻插值和双线性插值等算法将用户所选取的图像区域进行放大和缩小整数倍的操作,并保存,比较几种插值的效果。

5)图像直方图统计和直方图均衡,要求显示直方图统计,比较直方图均衡后的效果。

6)能对图像加入各种噪声,并通过几种滤波算法实现去噪并显示结果。

比较去噪效果。

3、总体设计本软件工具栏主要有文件,工具、图像等一些基本功能,如文件选项中包括打开、保存以及退出程序,操作选项卡中包含一些常用功能,对图像的处理通过对工具栏的操作来完成,下面将就具体功能逐个说明。

每一小段程序将在%后说明4、具体设计a.文件→打开[name,path]=uigetfile('*.*','');file=[path,name];axes(handles.axes1);x=imread(file); %读取图像handles.img=x;guidata(hObject, handles);imshow(x); %显示图像title('打开')b.文件→保存global BW % 定义全局变量[filename,pathname]= uiputfile({'*.*'},'save picture'); x=[pathname,filename];imwrite(BW,x); %保存图像c.文件→退出clc;close all;close(gcf);(2)工具中的加入噪声a.工具→噪声→高斯噪声:global BWaxes(handles.axes2);prompt={'输入参数1:','输入参数2:'};defans={'0','0.02'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});y=imnoise(handles.img,'gaussian',p1,p2); %生成高斯噪声imshow(y);imwrite(y,'gaussian.jpg'); %自动生成处理过的图像title('高斯噪声');BW=y;b.工具→噪声→乘性噪声global BWaxes(handles.axes2);prompt={'输入参数1:'};defans={'0.02'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});y=imnoise(handles.img,'speckle',p1); %生成乘性噪声imshow(y);imwrite(y,'speckle.jpg'); %自动生成处理过的图像title('乘性噪声');BW=y;c.工具→噪声→椒盐噪声global BWaxes(handles.axes2);prompt={'输入参数1:'};defans={'0.02'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});y=imnoise(handles.img,'salt & pepper',p1); %生成椒盐噪声imshow(y);imwrite(y,'salt.jpg'); %自动生成处理过的图像title('椒盐噪声');BW=y;工具→去噪加入高斯噪声后的滤波a.工具→去噪→自适应滤波global BWaxes(handles.axes2);y=wiener2(handles.img); %自适应滤波imshow(y);imwrite(y,'wiener.jpg');title('自适应滤波');BW=y;b.工具→去噪→线性滤波global BWaxes(handles.axes2);h=[1 1 1;1 1 1;1 1 1];H=h/9;i=double(handles.img);k=conv2(i,h); %线性滤波imshow(k,[]);title('线性滤波');BW=y;c.工具→去噪→中值滤波global BWaxes(handles.axes2);x=(handles.img);prompt={'输入参数1:','输入参数2:'};defans={'5','5'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});z=medfilt2(x,[p1,p2],'symmetric'); %中值滤波imshow(y);imwrite(y,'medfilt.jpg');title('中值滤波');BW=y;工具→缩放(主要对文件的尺寸进行修改)a.工具→缩放→最近邻插值global BWaxes(handles.axes2);prompt={'缩放倍数'};defans={'2'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});x=imresize(handles.img,p1,'nearest'); %最近邻插值法缩放imshow(x);imwrite(x,'near .jpg')title(' 最近邻插值法缩放');BW=x;把新图像保存为114(原图像为113)新图像大小为原来的0.5*0.5倍b.工具→缩放→双线性插值global BWaxes(handles.axes2);prompt={'缩放倍数'};defans={'2'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});x=imresize(handles.img,p1,'bilinear'); %双线性插值法缩放imshow(x);imwrite(x,'double.jpg');title('•双线性插值');BW=x;把新图像保存为115(原图像为113)新图像大小为原来的2*2倍global BWaxes(handles.axes2);x=imcrop(handles.img); %截图imshow(x);imwrite(x,'cut.jpg'); %保存图像title('截图');BW=x;工具→频谱axes(handles.axes2);x=(handles.img);J2=fft2(x); %傅立叶变换K2=fftshift(J2); %转换数据矩阵y=imshow(log(abs(K2)),[8,10]); %显示频谱图title('频谱图');global BWaxes(handles.axes2);x=(handles.img);prompt={'旋转角度'};defans={'60'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});y=imrotate(x,p1,'bilinear','crop'); %旋转角度imshow(y); %显示旋转效果BW=y;图像→对比度调节global BWaxes(handles.axes2);x=(handles.img);prompt={'下限0.00','上限1.00','r'};defans={'0.15','0.85','0.5'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});p3=str2num(p{3});y=imadjust(x,[p1,p2], [0.15,0.85],p3); %对比度调节imshow(y);title('对比度调节');BW=y;图像→亮度调节global BWaxes(handles.axes2);x=(handles.img);prompt={'下限0.00','上限1.00'};defans={'0.15 ','0.85'};p=inputdlg(prompt,'输入参数',1,defans);p1=str2num(p{1});p2=str2num(p{2});y=imadjust(x,[0 1], [p1 ,p2]); %亮度调节imshow(y);title('亮度调节');BW=y;图像→灰度图像global BWaxes(handles.axes2);x=rgb2gray(handles.img); %RGB图像转换为灰度图像imshow(x);imwrite(x ,'huidu.jpg')title(' 灰度');BW=x;set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);x=imhist(handles.img); %直方图统计x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%axis([0 255 0 150000]);set(handles.axes2,'xtick',0:50:255);%set(handles.axes2,'ytick',0:2000:15000);set(handles.axes2,'HandleVisibility','OFF');set(handles.axes2,'HandleVisibility','ON');axes(handles.axes2);h=histeq(handles.img); %直方图均衡imshow(h);%set(handles.axes2,'ytick',0:2000:15000);set(handles.axes2,'HandleVisibility','OFF');关于msgbox('这是一个关于图像处理GUI程序','关于');5、结果分析经过调试,修改之后所设计的功能均可以实现,其具体功能在其字面已很明显,这里就不再赘述。

相关文档
最新文档