MATLAB GUI图像处理 |
您所在的位置:网站首页 › lumion85怎么保存图片 › MATLAB GUI图像处理 |
笔者(没错,就是我)最近刚刚接触使用MATLAB的GUI做一些简单的图像处理,觉得挺有趣的,自己心血来潮想写写看,同时也是对学到的知识的回顾和总结。如有不妥之处,还请多多指教! 关于如何制作一个GUI界面在这里就不详细介绍了,因为在网上输入“GUi界面”都能搜出一大堆教程。 当你编辑好界面后,在对应的.m文件里你会看到一堆函数,一开始做学习做简单界面的功能的时候,并不需要理会这些函数究竟写了什么,只需要明白你实现的控件对应的回调函数,也就是Callback函数,实现的功能代码写进函数里就行。而CreateFcn是在生成这个控件显示之前,执行这个函数名下的代码;DeleteFcn则是在控件要销毁,但是在被销毁之前执行这个函数名下的代码。关于两个控件间,两个GUI界面间如何传值的问题,在之后的博文中会一一细说。 由于我做的是图像的处理,那么打开图像和保存图像就是必不可少。 先在菜单编辑器里添加“打开”和保存这两个菜单。为了能让打开的图片显示出来,我在界面正中间(当然是为了显示好点)添加了“坐标轴”控件。但是这样还不行,因为是坐标轴,每次运行时界面都会有坐标的标注,而我需要的是一个能显示图片的区域,因此需要在Openingfcn里添加这样一句代码:set(handles.axes1,'visible','off'); 让坐标轴的标注和刻度去掉(其实是隐藏掉)。 ”打开图像“的回调函数里的代码如下: axes(handles.axes1); [filename,pathname]=uigetfile({'*.bmp;*.jpg;*.png;*.jpeg;*.tif'},'Pick an image', 'C:\Users\Public\Pictures\Sample Pictures'); str=[pathname filename]; if isequal(filename,0)||isequal(pathname,0) warndlg('Please select a picture first!','Warning'); return; else im = imread(str); (1) imshow(im); (2) end;调用了MATLAB里的函数uigetfile,打开图片的路径得自己选择,可以修改'C:\Users\Public\Pictures\Sample Pictures'来改变每次打开图片的默认路径,imread和imshow分别是读取图片和显示图片。这里用的图片都是24位的真彩图,如果你想显示8位图,可以修改上面的代码行(1)(2) [im,map] = imread(str); imshow(im,map); 保存图片可以调用imwrite函数,具体代码如下 [FileName,PathName] = uiputfile({'*.jpg','JPEG(*.jpg)';... '*.bmp','Bitmap(*.bmp)';... '*.gif','GIF(*.gif)';... '*.*', 'All Files (*.*)'},... 'Save Picture','Untitled'); if FileName==0 return; else h=getframe(handles.axes1); imwrite(h.cdata,[PathName,FileName]); end; 至于程序的退出比较简单,在”退出“的Callback函数里添加 close; 就行了。 这样就完成了最简单的设计。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |