第五章 使用者介面系統設計與系統使用實例展示
5.2 使用者介面系統展示
5.2.1 使用者介面之主畫面
在展示本系統的過程中,我們以Qt的Library實作使用者介面系統,並使用 MinGW作為C++程式碼的編譯器。我們使用Microsoft® Windows XP作為我們的 執行平台,由於本系統常常需要讀取Volume Data這類的三維影像,記憶體的需 求量通常較大。對一組 64 張slices的 512 x 512 的果蠅腦神經影像之GVF資料而 言,對每一個voxel儲存一個三維的向量,而每一分量的資訊需要以 4 個位元組 的floating point變數(C++ data type based on 32-bit computers)儲存,因此需要 64 x 512 x 512 x 12 bytes = 192MB的記憶體儲存。
我們在展示本系統所使用的硬體環境如下:
CPU: Intel Pentium IV 2.4GHz Processor
Memory: Transcend 512MB DDR400 (2pcs, totally 1GB) Hard Disk: 160GB Western Digits
下圖為本系統的主畫面範例:
圖 5.6 使用者介面範例
本系統的使用者介面之各個視窗在 UI 的 MVC 當中均屬於 View/Panel 的部 分。接下來我們將逐一介紹主要的視窗元件:
1. 影像物件瀏覽視窗(Object Explorer):使用者在此視窗中,可以樹狀結構 的方式,觀看到目前本系統中的所有影像物件(Volume Data)。使用者可 從這些物件當中點選有興趣的物件以觀看該影像資料。當使用者點選以 後,該物件將會成為本系統目前作用中的 Volume Data,執行
MainApplication 當中的所有功能時,均會對其發生作用。
2. 影像物件資訊視窗(Object Explorer):當使用者從(1)點選一組影像物件以 後,此視窗會顯示該影像物件的相關資訊,例如該 VolumeData 的 Dimension 等。
3. 影像瀏覽視窗(ImageView):該視窗除了顯示使用者所點選的影像物件資 料以外,也能夠接收使用者對於該影像的編輯命令。例如在
NeuronTracing 當中,使用者可從影像當中直接在某個 Neuron 附近點選,
以切換目前作用中的 Neuron。
4. 影像瀏覽控制器(ViewPanel):右圖中為該視窗之外觀,
主要提供使用者控制目前瀏覽的影像位置。由於影像資 料均以 Volume Data 為主,因此觀看的時候需要指定目前 觀看的切面(slice/frame)位置。而 SLICE NUM 則顯示目 前觀看的 slice 之 index。數字下方的一個類似選單的介 面則是提供使用者觀看影像時調整影像的比例,可放大 或縮小影像。另外 MOUSE POS 則是當滑鼠移動至影像 (3)當中,顯示滑鼠位於影像中的像素實際(pixel)位置。
這樣的數值不會受到放大/縮小瀏覽影響。最後 Show Contours 的切換 器,則是供使用者決定是否觀看影像以外的資訊,例如使用者編輯中的 Neuron 或是系統找出的 Vacuole 的 contour 資訊。
5. 功能使用介面(FunctionPanel):使用者從此處執行系統提供的各項功能 (即 MainApplication 當中所提供的例如 Matched Filter、Vacuole Search 和 GVF 的計算,或是將 Neuron 以 Snake 變形),圖中的範例的 Load Volume 是從檔案中讀取一組 Volume Data 成為影像物件並加入本系統。使用者 能夠以視窗(8)的功能列表切換至想要執行的功能。
6. 訊息視窗(MessageOutput):系統使用中若有任何訊息均顯示於此,通常 用以通知使用者某個處理程序的執行時所發生的事件,例如開始執行、
被使用者終止、執行過程中發生任何問題或是執行完成等,均會提供文 字訊息顯示於此。
7. 處理程序執行狀態(ThreadStatusPanel):當使用者對於系統發出處理程序
(例如 Matched Filter 演算法或是計算 GVF)的要求時,系統將會開始 執行處理程序。當執行時間較長而需要等待時,處理程序的進度說明與 完成的百分比均在此顯示;文字的部分則是目前處理程序的狀態(見 4.2.1 的 SubThread)另外顯示 cancel 的按鈕則是供使用者終止目前正在 執行的處理程序。
8. 功能切換器(FunctionListBox):當使用者點選某個影像物件時,可用的功 能會隨著作用中影像物件的屬性而有所改變。例如,使用者在應用需求 1(找尋 vacuole)當中,若點選未經處理過(即是剛從檔案輸入)的 VolumeData,可對其計算出 Matched Filer 之後的 Volume Data;對於 Matched Filter 計算的結果影像物件,則提供尋找 Vacuoles 的功能。當使 用者從切換器當中選擇了一項功能以後,視窗(5)將會切換成對應的功能 表以供使用者設定適當的參數並執行功能。
9. 主視窗(MainWindow):包含所有的視窗元件,並控制各個視窗元件的訊 息連結(signal/slot)。主視窗也含有一個稱為 UI Domain Model 的物件與 數個 Controller(5.1),完成各視窗元件與系統之間的連結。
10-14 均屬於 FunctionPanel,顯示於視窗(5)的位置:
10. 影像讀取功能表:即畫面中的(5),僅有一個按鈕。當被按下之後,會要 求使用者指定檔案名稱供系統讀取該檔案資料以建立影像。
11. Matched Filter 功能表:屬於應用需求 I 的設計。提供一個數字欄位,供 使用者設定執行 Matched Filter 時所要用的 Mask Size,以及啟動程序的 按鈕。
12. Find Contour 功能表:屬於應用需求 I 的設計。提供二個數字欄位,供使 用者設計執行尋找 Vacuole 演算法所要用的參數,分別為 Alpha Shape 的 Radius 與構成一個 Contour 所需要的最少的 Vertice 數。
13. GVF 功能表:屬於應用需求 II 的設計。提供各項 GVF 參數輸入的欄位。.
14. NeuronEditor 功能表:屬於應用需求 II 的設計。如圖:
使用者可從 Import/Export 將目前現有的 Neurons 讀取
/儲存至檔案中;Add 與 Edit 分別為 Neurons 的新增 與編輯的功能;Back 按鈕則是在 Add/Edit 當中作用,
是刪除編修中的 Neuron 最末節點。若使用者從影像 中選取一個 Neuron 之後,則會顯示與該 Neuron 有關 的資訊,例如有多少個點與總長度。