电子科技大学-数字图像处理-课程设计_第1页
电子科技大学-数字图像处理-课程设计_第2页
电子科技大学-数字图像处理-课程设计_第3页
电子科技大学-数字图像处理-课程设计_第4页
电子科技大学-数字图像处理-课程设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子科技大学数字图像处理课程设计 课题名称 数字图像处理 院(系) 通信与信息工程学院 专 业 通信工程 姓 名 学 号 起讫日期 指导教师 2015年12月15日目 录摘要: 03课题一:图像的灰度级分辨率调整04课题二:噪声的叠加与频域低通滤波器应用06课题三:顶帽变换在图像阴影校正方面的应用13课题四:利用Hough变换检测图像中的直线15课题五:图像的阈值分割操作及区域属性20课题六:基于MATLAB®的GUI程序设计23结束语: 36参考文献: 3737基于MATLAB®的数字图像处理课题设计摘 要本文首先对数字图像处理的相关定义、概念、算法与常用变换进行了介绍;

2、并通过七个课题实例,借助MATLAB®的图像处理工具箱(Computer Vision System Toolbox)对这些案例逐一实现,包括图像的灰度值调整、图像噪声的叠加、频域低通滤波器、阈值分割、Hough变换等,常用的图像变化与处理;然后通过MATLAB®的GUI程序设计,对部分功能进行模块化整合,设计出了数字图像处理的简易软件;最后给出了软件的帮助文件以及该简易程序的系统结构和m代码。关键词:灰度值调整 噪声 图像变换 MATLAB® GUI设计课题一:图像的灰度级分辨率调整设计要求:将图像的灰度级分辨率调整至,并在同一个figure窗口上将它们显示出来

3、。设计思路:灰度级分辨率又称色阶,是指图像中可分辨的灰度级的数目,它与存储灰度级别所使用的数据类型有关。由于灰度级度量的是投射到传感器上的光辐射值的强度,所以灰度级分辨率又称为辐射计量分辨率。随着图像灰度级分辨率的的逐渐降低,图像中所包含的颜色数目将变得越来越少,从而在颜色维度造成图像信息量的退化。MATLAB®提供了histeq函数用于图像灰度值的改变,调用格式如下:J = histeq(I,n)其中J为变换后的图像,I为输入图像,n为变换的灰度值。依次改变n的值为 128、64、32、16、8、4、2 就可以得到灰度值分辨率为128、64、32、16、8、4、2的输出图像。利用M

4、ATLAB®的subplot命令可以将不同灰度的图像放在同一个figure中方便对比。课题实现:该思路的MATLAB®源代码如下:in_photo=imread('lena.bmp');%读入图片“lena.bmp”,位置在matlab当前工作区路径下D:TempProjectMatlabWorksfor i = 128,64,32,16,8,4,2 syms('out_photo',num2str(i); %利用for循环定义7个变量,作为不同灰度值分辨率的输出变量 eval('out_photo',num2str(i),

5、'=histeq(in_photo,i)',''); %histeq函数用于改变图像灰度值,用eval函数给变量循环赋值end figure();set(figure(1),'NumberTitle','off','Name','图像的灰度级调整') ;%设置figure名称subplot(2, 4, 1); imshow(in_photo,); title('Orginal');subplot(2, 4, 2); imshow(out_photo128,); title('

6、Gray value 128');subplot(2, 4, 3);imshow(out_photo64,);title('Gray value 64');subplot(2, 4, 4);imshow(out_photo32,);title('Gray value 32');subplot(2, 4, 5);imshow(out_photo16,);title('Gray value 16');subplot(2, 4, 6);imshow(out_photo8,);title('Gray value 8');subpl

7、ot(2, 4, 7);imshow(out_photo4,);title('Gray value 4');subplot(2, 4, 8);imshow(out_photo2,);title('Gray value 2');%输出所有图形程序运行结果如下图:可以看出原图lena.bmp被转化为灰度值分辨率不同的7个图像。课题二:噪声的叠加与频域低通滤波器应用设计要求:往图像中叠加不同类型的噪声,并设计一个频域低通滤波器来去除之。设计思路:一、 噪声叠加:首先需要在输入图片中叠加不同类型的噪声。MATLAB®提供了imnoise函数用于在图像中加入噪声

8、,调用格式如下:J = imnoise(I,type)J为叠加噪声后的图像,I为输入图像,type分为:'gaussian'(Gaussian white noise with constant mean and variance);'localvar'(Zero-mean Gaussian white noise with an intensity-dependent variance);'poisson'(Poisson noise);'salt & pepper'(On and off pixels);'sp

9、eckle'(Multiplicative noise).二、低通频域滤波器算法原理空间域滤波和频率域滤波的基础都是卷积定理,这说明两个空间函数的卷积可通过计算两个傅里叶变换函数的乘积的逆变换得到;相反地,两个空间函数的卷积的傅里叶变换恰好等于两个函数傅里叶变换的乘积。然而对于数字图像仅当f(x,y) 和h(x,y) 正确经过零填充后, 表达式才严格有效。故在进行傅里叶变换前需先进行填零操作。经过上述分析, 可得到傅里叶变换的基本步骤:(1) 计算填充参数(2) 利用填充参数进行傅里叶变换(3) 根据type 生成传递函数H(x,y)(4) 传递函数与傅里叶变换相乘(5) 取G 的傅里

10、叶逆变换实部常见的低通频域滤波器有三种,分别为:理想低通滤波器,n阶巴特沃茨低通滤波器和高斯低通滤波器。三、低通频域滤波器在 Matlab®中的实现结合傅里叶变换基本步骤和函数 dftuv(M,N),在 Matlab中实现低通频域滤波器的代码如下:function g,F = lpfilter(f,type)%函数参数:彩色图像 f,低通滤波类型 type课题实现:代码分为三部分:1. 用来实现二维数组的meshgrid 表示的函数dftuv.m ;2.低通滤波器lpfilter.m ;3.主函数/codebeginfunction U,Y = dftuv( X,N )%dftuv

11、(M,N) 来实现二维数组的meshgrid 表示u=0:(X-1);w=0:(N-1);idx=find(u>X/2);u(idx)=u(idx)-X;idy=find(w>N/2);w(idy)=w(idy)-N;Y,U=meshgrid(w,u);endfunction g,F = lpfilter(f,type)%函数参数:彩色图像f,低通滤波类型type%函数返回值:低通模糊图像g,低通频率图像F%D0 取填充后图像宽度的5%当type 为'ideal' 时,表理想低通滤波器%当type 为' btw ' 时,表n 阶巴特低通沃兹滤波器%当

12、type 为' gaussian ' 时,表高斯低通滤波器f=im2double(f);PQ=2*(size(f);%DFT 之前补零F=fft2(f,PQ(1),PQ(2);%U,V=dftuv(PQ(1),PQ(2);D=sqrt(U.2+V.2); %采用欧氏距离D0=0.05*PQ(2);% 设定距离初值n=5;switch(type)case 'ideal'H=double(D<=D0);case 'btw'H=1./(1+(D./D0).(2*n);case 'gaussian'H=exp(-(D.2)./(2*

13、(D02);otherwiseerror('Unknown filter type.');end%G=H.*F;g=real(ifft2(G);%得到新图像g=g(1:size(f,1),1:size(f,2);%矩形修剪为初始大小endOriginal = imread('bank.bmp');X1 = imnoise(Original,'salt & pepper');%叠加椒盐噪声X2 = imnoise(Original,'gaussian',0,0.1);%叠加高斯噪声X3 = imnoise(Original,

14、'poisson');%叠加poisson噪声X4 = imnoise(Original,'speckle');%叠加speckle噪声 g1, = lpfilter(X1,'gaussian');%lowpass-filter函数,低通滤波g2, = lpfilter(X1,'btw');g3, = lpfilter(X1,'ideal'); h1, = lpfilter(X2,'gaussian');h2, = lpfilter(X2,'btw');h3, = lpfilter(

15、X2,'ideal'); i1, = lpfilter(X3,'gaussian');i2, = lpfilter(X3,'btw');i3, = lpfilter(X3,'ideal'); j1, = lpfilter(X4,'gaussian');j2, = lpfilter(X4,'btw');j3,F = lpfilter(X4,'ideal'); figure, imshow(Original)%显示原始图像set(figure(1),'NumberTitle

16、9;,'off','Name','Original') ; figure;%高斯低通滤波器滤波后的图像set(figure(2),'NumberTitle','off','Name','Noise & gaussian-filter') ;subplot(2, 4, 1); imshow(X1,); title('salt & pepper noise');subplot(2, 4, 2); imshow(X2,); title('gaussi

17、an noise');subplot(2, 4, 3); imshow(X3,); title('poisson noise');subplot(2, 4, 4); imshow(X4,); title('speckle noise');subplot(2, 4, 5); imshow(g1,); title('lowpass-gaussian');subplot(2, 4, 6); imshow(h1,); title('lowpass-gaussian');subplot(2, 4, 7); imshow(i1,);

18、title('lowpass-gaussian');subplot(2, 4, 8); imshow(j1,); title('lowpass-gaussian'); figure;%巴特沃兹低通滤波器滤波后的图像set(figure(3),'NumberTitle','off','Name','Noise & btw-filter') ;subplot(2, 4, 1); imshow(X1,); title('salt & pepper noise');subpl

19、ot(2, 4, 2); imshow(X2,); title('gaussian noise');subplot(2, 4, 3); imshow(X3,); title('poisson noise');subplot(2, 4, 4); imshow(X4,); title('speckle noise');subplot(2, 4, 5); imshow(g2,); title('lowpass-btw');subplot(2, 4, 6); imshow(h2,); title('lowpass-btw'

20、);subplot(2, 4, 7); imshow(i2,); title('lowpass-btw');subplot(2, 4, 8); imshow(j2,); title('lowpass-btw'); figure;%理想低通滤波器滤波后的图像set(figure(4),'NumberTitle','off','Name','Noise & ideal-filter') ;subplot(2, 4, 1); imshow(X1,); title('salt & p

21、epper noise');subplot(2, 4, 2); imshow(X2,); title('gaussian noise');subplot(2, 4, 3); imshow(X3,); title('poisson noise');subplot(2, 4, 4); imshow(X4,); title('speckle noise');subplot(2, 4, 5); imshow(g3,); title('lowpass-ideal');subplot(2, 4, 6); imshow(h3,); ti

22、tle('lowpass-ideal');subplot(2, 4, 7); imshow(i3,); title('lowpass-ideal');subplot(2, 4, 8); imshow(j3,); title('lowpass-ideal');/code end程序运行结果截图:/原始图像/高斯低通滤波器处理/巴特沃茨低通滤波器处理/理想低通滤波器处理课题三:顶帽变换在图像阴影校正方面的应用设计要求:举例说明顶帽变换在图像阴影校正方面的应用。(源图像为“rice.bmp”)。设计思路:当一幅图像具有大幅的背景的时候,而微小物品比较有

23、规律的情况下,可以使用顶帽运算进行背景提取。比如,matlab自带的rice.png;在这幅图像中,可以看到光照不是很均匀,这样的图像如果转换称二值图像的时候,就会有一个问题:变换的时候,由于背景光不同,导致了转换的时候有些暗背景的地方出现了丢失现象。使用顶帽变换,可以很好地解决这个问题。顶帽变化是从原有的图像中减去开运算后的图像。涉及到函数有imtophat imopen imsubtract. Imsubtract用于图像相减,调用格式为:Z = imsubtract(X,Y)Imtophat用于图像顶帽变换,调用格式:IM2 = imtophat(IM,SE)适用范围:适合于大片背景的提

24、取;局限:背景需要有大范围的,细节比较有规律的才行课题实现:代码如下:/codebeginIM=imread('rice.png');imshow(IM);title('原图');figure;se=strel('disk',10); %创建一个10*10的disk类型的结构元素seIM2 = imtophat(IM,se); %顶帽变换imshow(IM2);title('顶帽变换后');/code end程序运行结果如下:课题四:利用Hough变换检测图像中的直线设计要求:利用Hough变换来检测图像中的直线,与变换过程相关的

25、系列约束条件(线段的最小长度等)可自行叠加。(源图像为“bank.bmp”)。设计思路:Hough变换是利用图像全局特性而将边缘像素连接起来组成区域封闭边界的一种方法。在预先知道区域形状的条件下,利用Hough变换可以方便的得到边界曲线而将不连续的像素边缘点连接起来。Hough变换的主要优点是受噪声和曲线间断的影响小。利用Hough变换可以直接检测某些已知形状的目标,如直线。 Hough变换的基本思想是点线的对偶性。一方面,图像空间中共线的点对应在参数空间里相交的线;另一方面,在参数空间中相交于同一个点的所有直线在图像空间里都有共线的点与之对应。因此Hough变换把在图像空间中的直线

26、检测问题转换到参数空间中对点的检测问题,通过在参数空间里进行简单的累加统计完成检测任务。如果参数空间中使用直线方程,当图像空间直线斜率为无穷大时,会使累加器尺寸和变很大,从而使计算复杂度过大。为解决这一问题,采用直线极坐标方程,变换方程如图1所示。= xcos+ysin根据这个方程,原图像空间中的点对应新参数空间中的一条正弦曲线,即点- 正弦曲线对偶。检测直线的具体过程就是让取遍可能的值,然后计算的值,再根据和的值对累加数组累加,从而得到共线点的个数。利用Hough变换检测图像中直线的一般步骤应该首先对图像进行二值化,然后进行边缘检测,接着对边缘检测的结果作Hough变换,

27、最后得到直线检测结果。为了简便,算法主要针对图像的Hough变换,所以输入图像采用二值边缘图,具体算法步骤如下: (1)读入一幅256级灰度图(2)根据图像尺寸决定Hough变换累加器的大小并分配内存。 (3)对图像作Hough变换,并将变换结果存入Hough变换累加器。 (4)设定阈值,并根据阈值大小将Hough变换累加器中累加值小于阈值的点清零,即认为这些点并不对应图像域中的一条直线。(5)查找Hough变换累加器中累加值最大的点,记录该点并将其领域清零,继续查找并记录下一个累加值最大的点,直到累加器中所有的累加值都为零,记录的这些点即对应了检测到的图像中的直

28、线。 (6)根据检测到的点在图像域中绘出直线。课题实现:/code beginclear allclose allclcI=imread('bank.bmp');BW=im2bw(I);BW=edge(BW,'canny');%边缘提取 H,T,R = hough(BW);imshow(H,'XData',T,'YData',R,.'InitialMagnification','fit');xlabel('theta'), ylabel('rho');axi

29、s on, axis normal, hold on;P = houghpeaks(H,10,'threshold',ceil(0.3*max(H(:);x = T(P(:,2); y = R(P(:,1);plot(x,y,'s','color','white');lines = houghlines(BW,T,R,P,'FillGap',5,'MinLength',7);figure,imshow(BW), hold onmax_len = 0; for k = 1:length(lines)x

30、y = lines(k).point1; lines(k).point2;plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','green'); % Plot beginnings and ends of linesplot(xy(1,1),xy(1,2),'x','LineWidth',2,'Color','yellow');plot(xy(2,1),xy(2,2),'x','LineWidth',2,'Co

31、lor','red'); % Determine the endpoints of the longest line segmentlen = norm(lines(k).point1 - lines(k).point2);Len(k)=lenif ( len > max_len)max_len = lenxy_long = xyendend % highlight the longest line segmentplot(xy_long(:,1),xy_long(:,2),'LineWidth',2,'Color','bl

32、ue'); L1 Index1=max(Len(:)Len(Index1)=0L2 Index2=max(Len(:) x1=lines(Index1).point1(1) lines(Index1).point2(1)y1=lines(Index1).point1(2) lines(Index1).point2(2)x2=lines(Index2).point1(1) lines(Index2).point2(1)y2=lines(Index2).point1(2) lines(Index2).point2(2) K1=(lines(Index1).point1(2)-lines(I

33、ndex1).point2(2)/(lines(Index1).point1(1)-lines(Index1).point2(1)K2=(lines(Index2).point1(2)-lines(Index2).point2(2)/(lines(Index2).point1(1)-lines(Index2).point2(1) hold onm,n = size(BW); % 尺寸BW1=zeros(m,n);b1=y1(1)-K1*x1(1)b2=y2(1)-K2*x2(1)for x=1:nfor y=1:mif y=round(K1*x+b1)|y=round(K2*x+b2)BW1(

34、y,x)=1; end endendfor x=1:nfor y=1:m if ceil(K1*x+b1)=ceil(K2*x+b2)y1=round(K1*x+b1)BW1(1:y1-1,:)=0;endendendfigure,imshow(BW1)/code end运行结果:课题五:图像的阈值分割操作及区域属性设计要求:对图像执行阈值分割操作并统计出每一个区域块的属性,然后,将每个区域的中心和外接矩形给标注出来。(提示:如果分割后的区域块数太多,建议采用Matlab下的bwareaopen函数来筛选掉一部分区域块)。设计思路:在对图像的研究和应用中,人们往往仅对图像中的某些部分感兴趣,这

35、些部分一般称为目标或者前景;为了辨识和分析目标,需要将有关区域分离并提取出来,在此基础上方可对目标做进一步利用,如特征提取和参数测量等;图像分割就是指把图像分解成若干个特定的、各具特性的区域并提取出感兴趣目标的技术和过程,其中的特性可以是灰度、颜色、纹理等,目标可以对应单个区域,也可以对应多个区域。图像分割后提取出的目标可以应用于图像语义识别、图像搜索等领域。灰度阈值分割法是一种最常用的并行区域技术,它是图像分割中应用数量最多的一类。阈值分割方法实际上是输入图像f到输出图像g的如下变换:gi,j=1 fi,jT0 fi,j<T其中,T为阈值,取值为1的像素属于(前景)目标,取值为0的像素

36、属于背景。课题实现:使用Matlab®内置的 coins.png 图片,源代码如下:/code beginclc;clear all;fh=figure('NumberTitle','off','Name','OTSU分割','Menubar','none','Color','w');ah=axes('Parent',fh);I=imread('coins.png');level=graythresh(I);%OTSU核心函数

37、BW=im2bw(I,level);%OTSU核心函数subplot(1,2,1);imshow(I);title('输入图像');subplot(1,2,2);imshow(BW);title('分割后图像'); %寻找不包括孔连通域的边缘,并且把每个连通域的边界描出来B,L = bwboundaries(BW,4); figure;imshow(label2rgb(L, jet, .5 .5 .5)hold onfor k = 1:length(B)boundary = Bk;plot(boundary(:,2),boundary(:,1),'w&#

38、39;,'LineWidth',2)end% 找到每个连通域的质心stats = regionprops(L,'Area','Centroid');% 循环历遍每个连通域的边界for k = 1:length(B)% 获取一条边界上的所有点boundary = Bk; centroid = stats(k).Centroid;plot(centroid(1),centroid(2),'ko'); % 提取该连通域所对应在二值图像中的矩形区域goalboundary = boundary; s = min(goalboundary,

39、 , 1);e = max(goalboundary, , 1);%将目标区域分别向两侧延伸7个像素 rectangle('Position',s(2) s(1) e(2)-s(2) e(1)-s(1),'EdgeColor','r', 'LineWidth',2); end/code end运行结果:课题六:基于MATLAB®的GUI程序设计设计要求:设计一个简易的Matlab GUI界面程序,要求其具有如下的功能:打开与保存图像时均打开文件名设置对话框;当下拉菜单中的条目被选中时,列表框之中实时的记录下当前的选择;通

40、过编辑框来实现相关参数的交互式输入;将输入图像及处理后结果显示在相应的坐标轴之上;含有工具栏和菜单栏,当选择其下的组件成分时,要有相应的图像处理行为发生;将figure窗口的“Name”属性修改为自己的姓名和学号;将所设计的GUI程序编译为“.exe”形式的可执行文件。设计思路:首先明确GUI的功能:要求能改变输入图像的灰度值分辨率,并且给图像叠加不同类型的噪声。其中灰度值由于是固定的数值256,128,64,32,16,8,4,2,故采用单选按钮组进行实现。噪声叠加分为:高斯噪声,椒盐噪声,speckle噪声,分别置于 菜单栏-处理-噪声叠加 的子菜单里;而这些噪声函数的自定义参数,则通过编

41、辑框进行交互式输入。GUI程序打开的图像,和输出图像要分别显示在两个不同的axes中。可以绘制一个图像显示面板,用静态文本加注标签。下拉式菜单用于选择D:下的内置图片文件(lena.bmp; bank.bmp; jet.bmp; rice.bmp )。所选择的文件以及做出的图像处理操作被实时的记录在列表框里(作为Logs)。下拉式菜单处于图像选择面板,如下图所示:列表框作为操作记录器,效果如下图:下面是GUIDE界面截图,即控件布局图:GUI程序中包含的所有对象展示如下: 程序结构:打开图片或内置图片选择显示图像axes2显示图像axes1图像处理:一、灰度调整 二、噪声叠加 1.gaussi

42、a2.salt & pepper3.speckle确定实时操作记录保存图片参数调节(灰度值, M, V, d, v)菜单结构:Root 文件打开保存退出处理灰度调整噪声叠加gaussiansalt and pepperspeckle帮助-关于课题实现:基于MATLAB®的GUI程序设计核心是回调函数(callback function)的编写。在此GUIDE自动生成的代码中添加回调函数如下:/code beginfunction varargout = m6(varargin)gui_Singleton = 1;gui_State = struct('gui_Name

43、', mfilename, . 'gui_Singleton', gui_Singleton, . 'gui_OpeningFcn', m6_OpeningFcn, . 'gui_OutputFcn', m6_OutputFcn, . 'gui_LayoutFcn', , . 'gui_Callback', );if nargin && ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);end if nargout

44、varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT % - Executes just before m6 is made visible.function m6_OpeningFcn(hObject, eventdata, handles, varargin)handles.output = hObject;guidata(hObject, handles); % - Ou

45、tputs from this function are returned to the command line.function varargout = m6_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; % -%菜单栏-文件-打开 功能:打开图像文件function Untitled_2_Callback(hObject, eventdata, handles)global im; %定义变量作为输入图像time_string = num2str(datestr(now,'yyyy-mm-d

46、d-HH:MM:SS');%时间串filename,pathname = uigetfile('*.*''*.bmp''*.tif''*.png','选择图片'); str=pathname filename; im=imread(str); %打开文件set(handles.listbox3,'string',strvcat(get(handles.listbox3,'string'),time_string,'>> 打开图片成功');%将打开文

47、件操作记录与列表框(logs)axes(handles.axes5); imshow(im); % -%菜单栏-文件-保存 功能:保存输出图片function Untitled_3_Callback(hObject, eventdata, handles)global BW; %定义变量作为输出图像time_string = num2str(datestr(now,'yyyy-mm-dd-HH:MM:SS');filename,pathname,filterindex=uiputfile('*.bmp''*.tif''*.png'

48、,'保存输出图片');if filterindex=0return %如果取消操作,返回elsestr=pathname filename; %合成路径+文件名axes(handles.axes6); %使用axes6输出图像imwrite(BW,str); %写入图片信息,即保存图片set(handles.listbox3,'string',strvcat(get(handles.listbox3,'string'),time_string,'>> 图片已保存');%将文件保存成功的信息记录与(log)end % -

49、%菜单栏-文件-退出 功能:退出GUIfunction Untitled_5_Callback(hObject, eventdata, handles) clc;clear all;close(gcf); % - Executes on selection change in popupmenu3.%下拉式菜单 功能:内置图片选择function popupmenu3_Callback(hObject, eventdata, handles)contents = cellstr(get(hObject,'string');time_string = num2str(datest

50、r(now,'yyyy-mm-dd-HH:MM:SS');item_index = get(hObject,'value');set(handles.listbox3,'string',strvcat(get(handles.listbox3,'string'),time_string,'>> ',contentsitem_index);%实时的记录当前选择的图片global im;val=get(hObject,'Value');switch contentsval case '

51、;lena.bmp' im=imread('D:lena.bmp'); %内置图片放在D盘根目录下 axes(handles.axes5); imshow(im); case'bank.bmp' im=imread('D:bank.bmp'); axes(handles.axes5); imshow(im); case'jet.bmp' im=imread('D:jet.bmp'); axes(handles.axes5); imshow(im); case'rice.bmp' im=imr

52、ead('D:rice.bmp'); axes(handles.axes5); imshow(im); case'camera.bmp' im=imread('D:camera.bmp'); axes(handles.axes5); imshow(im);end %操作面板-确定 功能:在输出图像坐标系(axes6)中显示图像function pushbutton3_Callback(hObject, eventdata, handles) global BW;axes(handles.axes6);imshow(BW); % -%菜单栏-帮助-

53、关于 功能:作者信息function Untitled_8_Callback(hObject, eventdata, handles) hObject = msgbox('电子科技大学''通信与信息工程学院''王''201401','关于作者','none','non-modal');ht = findobj(hObject, 'Type', 'text');set(ht, 'FontSize', 12, 'Unit',

54、 'normal');set(hObject, 'Position', 200 200 150 150);%固定窗口位置 % -%菜单栏-处理-灰度调整 功能:调整输入图像的灰度function Untitled_9_Callback(hObject, eventdata, handles) global BW;global im;global x;%im = rgb2gray(im);%若输入图像可能为彩色图像 加入 im=rgb2gray(im);BW = histeq(im,x); %参数面板-灰度选择 功能:选择所需灰度值function uibutto

55、ngroup4_SelectionChangedFcn(hObject, eventdata, handles) global x;%定义全局变量作为灰度值参数xx=2;%默认调整至二值图像time_string = num2str(datestr(now,'yyyy-mm-dd-HH:MM:SS');switch get(eventdata.NewValue,'Tag') case 'radiobutton11' x=256; set(handles.listbox3,'string',strvcat(get(handles.l

56、istbox3,'string'),time_string,'>> 灰度选择256'); %实时记录下灰度值选择 case 'radiobutton12' x=128; set(handles.listbox3,'string',strvcat(get(handles.listbox3,'string'),time_string,'>> 灰度选择128'); case 'radiobutton13' x=64; set(handles.listbox3,'string',strvcat(get(handles.listbox3,'string'),time_string,'>> 灰度选择64'); case 'radiobutton14'

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论