MATLAB GUI界面实现图像二值化处理的实时显示

MATLAB GUI界面实现图像二值化处理的实时显示

参考彭军大神的《一个实例搞定MATLAB界面编程》——matlab-gui界面编程入门教程

GUI界面是采用一个滑块来调整彩色变黑白的程度。

MATLAB GUI界面实现图像二值化处理的实时显示的图1

界面主要包含两个函数,一个主函数untitled,另外一个通过滑块即时控制二值化的函数im2bw_args,在主函数中主要需要设置当点击“打开”时的反应

MATLAB GUI界面实现图像二值化处理的实时显示的图2

MATLAB GUI界面实现图像二值化处理的实时显示的图3

读取路径下的图片,这里面使用uigetfile函数获得读取图片的名称和路径,同时需要把图片的路径和名称合并为字符串fpath,然后使用imread函数读取路径,再使用imshow函数显示图片。

MATLAB GUI界面实现图像二值化处理的实时显示的图4

而当点击“保存”时,需要设置图片的保存路径,使用getappdata取得打开图片的数据,再使用imwrite保存图片。

MATLAB GUI界面实现图像二值化处理的实时显示的图5

MATLAB GUI界面实现图像二值化处理的实时显示的图6

此时点击“图像二值化”按钮,即会调用im2bw_args函数,其内部中关于滑块的函数为

val = get(hObject,'Value');

set(handles.txt_display,'String',num2str(val));

以上两句就是将滑块中值传递给静态文本Static text

而在打开二值化滑块控件时,我们需要通过findobj函数将该控件的figure句柄传递给h_untitled,,再使用guihandles函数转化句柄,之后就可以用这个转化后的句柄来引用untitled.fig中的任何一个控件了,这样通过实时更新结构体,才能将静态文本的变化同步显示出来

MATLAB GUI界面实现图像二值化处理的实时显示的图7

h_untitled = getappdata(handles.figure_im2bw,'h_untitled');

axes(h_untitled.axes_dst);

img_src = getappdata(0,'img_src');

bw = im2bw(img_src,val);

imshow(bw);

以上语句通过从滑块中提取的值确定二值化的阈值,最后使用imshow函数生成二值化处理后的图像,并实时显示在图像框中。

MATLAB GUI界面实现图像二值化处理的实时显示的图8

MATLAB GUI界面实现图像二值化处理的实时显示的图9

(27条)
默认 最新
6
评论 点赞
6
评论 点赞

查看更多评论 >

点赞 11 评论 27 收藏 13
关注