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

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

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

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

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

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

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

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

val = get( hObject , 'Value' );

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

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

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

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 );