MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示
MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示
參考彭軍大神的《一個(gè)實(shí)例搞定MATLAB界面編程》——matlab-gui界面編程入門教程
GUI界面是采用一個(gè)滑塊來調(diào)整彩色變黑白的程度。

界面主要包含兩個(gè)函數(shù),一個(gè)主函數(shù)untitled,另外一個(gè)通過滑塊即時(shí)控制二值化的函數(shù)im2bw_args,在主函數(shù)中主要需要設(shè)置當(dāng)點(diǎn)擊“打開”時(shí)的反應(yīng)


讀取路徑下的圖片,這里面使用uigetfile函數(shù)獲得讀取圖片的名稱和路徑,同時(shí)需要把圖片的路徑和名稱合并為字符串fpath,然后使用imread函數(shù)讀取路徑,再使用imshow函數(shù)顯示圖片。

而當(dāng)點(diǎn)擊“保存”時(shí),需要設(shè)置圖片的保存路徑,使用getappdata取得打開圖片的數(shù)據(jù),再使用imwrite保存圖片。


此時(shí)點(diǎn)擊“圖像二值化”按鈕,即會(huì)調(diào)用im2bw_args函數(shù),其內(nèi)部中關(guān)于滑塊的函數(shù)為
val = get(hObject,'Value');
set(handles.txt_display,'String',num2str(val));
以上兩句就是將滑塊中的值傳遞給靜態(tài)文本Static text。
而在打開二值化滑塊控件時(shí),我們需要通過findobj函數(shù)將該控件的figure句柄傳遞給h_untitled,,再使用guihandles函數(shù)轉(zhuǎn)化句柄,之后就可以用這個(gè)轉(zhuǎn)化后的句柄來引用untitled.fig中的任何一個(gè)控件了,這樣通過實(shí)時(shí)更新結(jié)構(gòu)體,才能將靜態(tài)文本的變化同步顯示出來。

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函數(shù)生成二值化處理后的圖像,并實(shí)時(shí)顯示在圖像框中。


工程師必備
- 項(xiàng)目客服
- 培訓(xùn)客服
- 平臺(tái)客服
TOP




















