MATLAB GUI图像处理

您所在的位置:网站首页 lumion85怎么保存图片 MATLAB GUI图像处理

MATLAB GUI图像处理

2023-08-23 20:08| 来源: 网络整理| 查看: 265

笔者(没错,就是我)最近刚刚接触使用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