1 / 21

影像處理 實作 (4)

影像處理 實作 (4). 2008/03/19. 實作內容. TabControl 控制項 ContextMenuScript 控制項 Color Image Processing 彩色影像轉灰階影像 彩色模型之轉換( RGB 與 HSI 互轉) 利用直方圖均衡化強化彩色影像. 程式介面. 請新增一個 Windows Form 專案,並在表單上放在以下控制項: OpenFileDialog MenuScript TabControl 在 TabControl 中的第一個 TabPage 加入一個 PictureBox ContextMenuScript.

werner
Download Presentation

影像處理 實作 (4)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 影像處理 實作(4) 2008/03/19

  2. 實作內容 • TabControl控制項 • ContextMenuScript控制項 • Color Image Processing • 彩色影像轉灰階影像 • 彩色模型之轉換(RGB與HSI互轉) • 利用直方圖均衡化強化彩色影像

  3. 程式介面 • 請新增一個Windows Form專案,並在表單上放在以下控制項: • OpenFileDialog • MenuScript • TabControl • 在TabControl中的第一個TabPage加入一個PictureBox • ContextMenuScript

  4. 程式介面

  5. 程式介面 • 請為控制項設定屬性: • OpenFileDialog • Filter:bmp檔 | *.bmp | Jpeg檔 | *.jpg | 所有檔案 | *.* • MenuScript • 輸入主選單與子選單如下 • File • Open… • Quit • Tool • Convert to Gray Level • Histogram Equalization • ContextMenuScript • 輸入以下選項 • Close Page

  6. TabControl • 多分頁控制項 • 每一個TabControl中可能包含多個分頁(TabPage) • 每個TabPage都是一個容器,用以裝載其他控制項 • 點選時請注意,點選分頁標籤才能選擇TabControl控制項;點選中央區域,則會點選到TabPage。 • 屬性設定 • 請移除預設的第二個分頁(在分頁標籤上右按滑鼠→刪除) • 在TabControl中的第一個TabPage加入一個PictureBox • TabPage的Text屬性設定為「New Page」。 • TabPage的AutoScroll屬性設定為「true」。 • 將此分頁中的PictureBox置在該分頁的最左上方。 • 將該PictureBox的SizeMode屬性設定為「AutoSize」。 • 本程式將原圖開啟於第一個分頁中,處理過後的影像自動開啟於其他的分頁裡。

  7. 引用命名空間 • 請新增加以下命名空間 • using System.Drawing.Imaging; • 和Bitmap型態有關 • using System.IO; • 和Path型態有關 • Path類別用以擷取檔案路徑字串中的資訊

  8. 成員變數 • 請宣告以下成員變數 • 使用者按下「Open…」後,開啟開檔對話盒以載入影像至此成員變數中。

  9. 載入圖片 • 請為MenuScript的「Open…」選項加入事件處理 • TabControl中的TabPages成員用以記錄所有的分頁 • TabPages的型態為TabPage[](TabPage的陣列)。 • 利用索引的方式來存取其中的某一個分頁。 • TabPage其Dispose()用以刪除該分頁的內容。 • TabCount紀錄分頁的個數 • 利用Path中GetFileName函式可以用來擷取路徑字串中檔名的部分。

  10. 彩色影像轉灰階影像 • 影像的灰度由0至255。 • 基本上,將RGB三個channel設定為同樣的數值,即可將顏色轉變為灰階。 • 取得灰度有許多方法: • 只取R值(或只取G或B值)。 • 根據HSI色彩模型,I值可提供亮度資訊: I = (R + G + B) / 3; • YIQ色彩模型 • 用於工業彩色電視廣播中 • Y分量提供單色電視機的相容性 Y = 0.299R + 0.587G + 0.114B

  11. 彩色影像轉灰階影像 • 請於「Convert to GrayLevel」中加入事件處理

  12. ContextMenuScript控制項 • 彈出式選單 • 用來設定在控制項右按滑鼠時,所出現的功能選單。 • 每個表單控制項都有一個ContextMenuScript屬性用來指定其ContextMenuScript。 • 請在ContextMenuScript的「Close Page」輸入以下事件處理程式: • 此行程式碼的意義在於用以關閉目前顯示的分頁。

  13. 色彩模型的轉換 • 請加入以下的成員函式以實作RGB轉HSI • 在參數宣告前面加上「ref」,代表該引數以參考的方式來傳遞,所以該引數的內容將可被此函式來更動。

  14. 色彩模型的轉換 • 請仿照ColortoHSI(),實作以下成員函式: private Color HSItoColor(int H, double S, int I) • 將顏色由HSI轉成Color型態(RGB模型) • 注意: • Math.Cos()所接受的參數為「弧度」,因此角度必須先除以180/Pi來轉換。

  15. 色彩模型的轉換

  16. 色彩模型的轉換—測試 • 請於MenuScript的「Histogram Equalization」選項中加入以下程式碼,用以測試上述成員函式的正確性:

  17. 色彩模型的轉換—測試

  18. 色彩模型的轉換—測試 • 注意: • 如執行時發現顏色轉換錯誤,請檢查程式碼是否輸入正確(弧度與角度是否轉換無誤?) • 可自行用小畫家應用程式繪製純紅、純綠與純藍的影像,來驗證你的執行結果。

  19. 彩色影像的直方圖均衡化 • 修改第二週的程式碼,將直方圖均衡化的程式變成一個成員函式。 • 其接受一個二維的數字陣列作為參數,並回傳均衡化的結果(同樣也為一個二維數字陣列)

  20. 彩色影像的直方圖均衡化 • 請修改MenuScript的「Histogram Equalization」事件處理函式。 • 在輸出影像前,先對Intensity陣列進行直方圖均衡化的處理。 • 回傳直方圖均衡化的結果,以Intensity接收。

More Related