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);
以上语句通过从滑块中提取的值确定二值化的阈值,最后使用imshow函数生成二值化处理后的图像,并实时显示在图像框中。
查看更多评论 >