張 勇 曹高飛 潘 宏
(瀘州醫(yī)學(xué)院,四川 瀘州 646000)
圖形用戶界面GUI(Graphical User Interfaces)是面向?qū)ο蟮挠脩艚缑?,包含窗口、圖標(biāo)、菜單、文本等對(duì)象,它提供了人機(jī)交互的工具和方法。MATLAB的GUI為開發(fā)者提供了一個(gè)不脫離MATLAB的開發(fā)環(huán)境,有助于MATLAB程序的GUI集成。在MATLAB中的GUIDE就是圖形用戶界面開發(fā)環(huán)境(Graphical User Interface Development Environment),它向用戶提供了一系列的創(chuàng)建用戶圖形界面的工具,這些工具大大簡(jiǎn)化了設(shè)計(jì)和生成的過程。設(shè)計(jì)一個(gè)GUI程序可分為三個(gè)步驟:1)圖形界面設(shè)計(jì)2)控件屬性設(shè)置3)程序代碼編寫。下面就以此步驟介紹實(shí)現(xiàn)圖像分割的GUI程序。
用GUIDE版面設(shè)計(jì)器根據(jù)比較設(shè)計(jì)需要首先拖拽兩個(gè)圖形窗口Axes,一個(gè)作為待處理圖片區(qū)域,另一個(gè)作為已處理圖片區(qū)域;其次,拖拽1個(gè)下拉菜單Pop-up menu作為圖像分割算法的選擇按鈕;第三,拖拽3個(gè)按鈕Push Button作為輸入圖像、保存圖像、退出界面的按鈕;第四,拖拽一個(gè)Slider微調(diào)按鈕,實(shí)現(xiàn)閾值的選取;第五,拖拽一個(gè)Edit Text編輯文本框,實(shí)現(xiàn)編輯文本框與微調(diào)按鈕的同步;最后,合理布局所有按鈕及圖形,使界面達(dá)到美觀工整后運(yùn)行GUI,系統(tǒng)自動(dòng)生成GUI文件。
控件是GUI必不可少的組成部分,每一個(gè)控件都有其各自的屬性。在初步定好GUI界面時(shí),需要對(duì)添加在上面的控件進(jìn)行基本屬性的設(shè)置。需要設(shè)置的屬性主要有:FontSize、String、Tag、Max、Min、Resize、Units。
屬性設(shè)置好之后,圖像分割主界面如圖1。
圖1 圖像分割的GUI主界面
圖像分割GUI界面設(shè)計(jì)完成后需要在按鈕的callback回調(diào)函數(shù)中添加代碼。
①將待處理的圖像載入圖形窗口的程序代碼如下:
運(yùn)行結(jié)果如圖2所示。
圖2 載入圖像后GUI界面
②保存圖像的程序代碼:
運(yùn)行結(jié)果如圖3所示。
圖3 保存處理后的圖像
③退出界面回調(diào)函數(shù)程序代碼:
下拉菜單pop-up menu回調(diào)函數(shù)程序代碼:
運(yùn)行結(jié)果如圖4,圖5所示。
圖4 roberts算子圖像分割
圖5 sobel算子圖像分割
編輯文本框Edit Text回調(diào)函數(shù)程序代碼:
圖像分割是指根據(jù)需要將圖像劃分為有意義的若干區(qū)域或部分的圖像處理技術(shù)。MATLAB圖形用戶界面的應(yīng)用,使基于閾值的圖像分割處理變得更加的簡(jiǎn)潔和直觀。