MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示

參考彭軍大神的《一個(gè)實(shí)例搞定MATLAB界面編程》——matlab-gui界面編程入門教程

GUI界面是采用一個(gè)滑塊來調(diào)整彩色變黑白的程度。

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖1

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

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖2

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖3

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

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖4

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

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖5

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖6

此時(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)文本的變化同步顯示出來

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

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖8

MATLAB GUI界面實(shí)現(xiàn)圖像二值化處理的實(shí)時(shí)顯示的圖9

登錄后免費(fèi)查看全文
立即登錄
App下載
技術(shù)鄰APP
工程師必備
  • 項(xiàng)目客服
  • 培訓(xùn)客服
  • 平臺(tái)客服

TOP

11
27
13