1.Form 設計
為了讓圖片及直方圖都能夠以較大的圖片顯示出來, 因此, 在 Form1 上, 放置了 PageControl 元件, 讓影像和直方圖分別放在不同 Page 之中。
在 Histogram Page 中, 直方圖是用一張高 256 寬 768 的圖形來繪製, 寬之所以為 768 的原因是需要顯示紅、綠、藍等三個色彩的直方圖, 每個色彩需要 256 條直線, 一共 256*3=768 條直線繪製完整的直方圖。
直方圖分成兩類, 第一類是原始的直方圖, 第二類是累積直方圖。在 Histogram Page 中, 可以使用 RadioGroup 元件來選定要顯定的直方圖種類。
原始直方圖
累積直方圖
除此, 還可以使用 GroupBox 來選定要顯示的色彩直方圖, 下圖是三個色彩均選擇所呈現出來的直方圖。
原始直方圖
累積直方圖
Up 與 Down 兩個 BitBtn 元件, 則是可以用來放大或是縮小直方圖的垂直線條的長度, 每按一下 Up 按鈕, 就會放大 1.2 倍; 同理, 每按一下 Down 按鈕, 就會縮成原來長度的 0.8 倍。另外, Save Button 元件則是提供將直方圖影像元件儲存成 bmp 檔案。
直方圖 image 元件, 在 OnMouseMove Event 中, 讀取滑鼠位於 image 元件的 X 座標, 將其轉換成色階, 再將該色階的像素個數, 比率, 累積像素總數及其比率等基本資訊用 Label 元件顯示出來。
2. 實驗結果:
直方圖均化處理的目的是將低對比的影像轉化成高對比的影像, 因此特別從以前拍的相片找到一張多年前黃昏後, 在北投貴子坑步道, 突然發現一隻紫嘯鶇, 在急忙拍攝的情況下, 忘了開閃光燈, 所以拍成黑壓壓一片。
整張影像的對比度相當低, 如果不仔細看, 會以為是一張全黑的圖片。
直方圖顯示大部分的色彩都集中在色階最暗的地方。
經過直方圖均化處理過後的影像, 對比已經被強化了, 步道完全顯示出來了, 紫嘯鶇也看得見了。
直方圖顯示出色彩已經擴展到 0 - 255 之間, 不再集中在暗的區域。
沒有留言:
張貼留言