Top Banner
影像直方圖與直方圖均化 Image Histogram and Histogram Equalization 影像處理 Oct. 20, 2014 銘傳資工 李遠坤 副教授 編撰
24

Image histogram and histogram equalization 影像直方圖與直方圖均化

Jul 02, 2015

Download

Education

YKLee3434

Image Processing Class #3
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Image histogram and histogram equalization 影像直方圖與直方圖均化

影像直方圖與直方圖均化Image Histogram and

Histogram Equalization

影像處理Oct. 20, 2014

銘傳資工李遠坤副教授編撰

Page 2: Image histogram and histogram equalization 影像直方圖與直方圖均化

大綱

1. 色彩統計 Color Statistics

2. 直方圖與累積直方圖

Histogram and Cumulative Histogram

3. 畫布元件型態 TCanvas ( C++ Builder )

4. 直方圖均化 Histogram Equalization

2

Page 3: Image histogram and histogram equalization 影像直方圖與直方圖均化

色彩統計

Color Statistics

3

Page 4: Image histogram and histogram equalization 影像直方圖與直方圖均化

色彩統計 Color Statistics

• 為了進行特定的影像處理程序,有時必須先針對影像內

容進行分析。

• 色彩統計就是忽略每一個像素的座標資料,只針對色彩

出現的次數 (或頻率)進行統計。

4

Page 5: Image histogram and histogram equalization 影像直方圖與直方圖均化

• 以灰階影像為例,所有可能出現的色彩有 0 – 255 共 256

種灰階值。因此,撰寫一個程式針對所有不同色階進行

統計是容易的。

• 除了針對各個色階出現的次數

(或頻率)進行統計之外,更可

進一步的計算平均值(mean)、

變異數(variance)、中位數

(median)…等,以利進行分析。

色彩統計 Color Statistics (續)

5

Page 6: Image histogram and histogram equalization 影像直方圖與直方圖均化

• 若是全彩影像,所有可能出現的色彩共有 224種不同的色

彩值。要撰寫一個程式針對所有不同色彩值進行統計,

在宣告儲存各個色彩出現次數

的陣列,就會遭遇到困難。

• 取而代之的作法就是分別針對

紅、綠、藍等三原色進行統計。

或是先將色彩轉換成明亮度後,

再進行統計。

色彩統計 Color Statistics (續)

6

Page 7: Image histogram and histogram equalization 影像直方圖與直方圖均化

直方圖與累積直方圖

Histogram and Cumulative Histogram

7

Page 8: Image histogram and histogram equalization 影像直方圖與直方圖均化

直方圖 Histogram

• 直方圖在直覺上和統計學上的機率密度函數(probability

density function, pdf )非常相似。

• 影像色彩直方圖就是

針對所有可能的色彩,

進行像素數量統計,

並將統計結果以直條

圖的方式呈現。

8

Page 9: Image histogram and histogram equalization 影像直方圖與直方圖均化

直方圖 Histogram (續)

9

灰階影像 Waterlily Photoshop 所顯示的直方圖

Page 10: Image histogram and histogram equalization 影像直方圖與直方圖均化

直方圖 Histogram (續)

10

全彩影像 Waterlily

Photoshop 所顯示的直方圖

Page 11: Image histogram and histogram equalization 影像直方圖與直方圖均化

累積直方圖 Cumulative Histogram

• 累積直方圖在直覺上和統計學上的累積密度函數

(cumulative density function, cdf )非常相似。

• 累積直方圖(cumulative histogram) 就是將直方圖中,統計

色階為小於或等於該色階的像素總和。統計結果同樣以

直條圖的方式呈現。

11

Page 12: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas

( C++ Builder )

12

Page 13: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas

• C++ Builder 的影像元件型態 TImage中,包含一個畫布元

件型態 TCanvas。透過畫布元件(canvas),使用者可以直

接在影像元件中作畫。

• 注意!畫布元件僅僅在執行時期(runtime)是可用的

(available)元件,因此,針對畫布元件的所有處理,都必

須透過撰寫程式的方式進行。

• 接下來,我們將介紹一些 C++ Builder 所提供畫布元件型

態中的常用元件與函式,以便完成影像色彩直方圖的繪

製。

13

Page 14: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas (續)

• 畫筆(Pen) 與刷筆(Brush)是畫布元件中最常用的兩項元件。

畫筆主要是用來在畫布上畫線條,至於刷筆則是用來針

對畫布的特定區域進行大面積處理。

14

Page 15: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas (續)

• 畫筆元件型態 (TPen) 包含 Property Color,用來設定畫筆

的顏色。

// 用預先定義的常數 clRed、clGreen... 指定畫筆的顏色。

Image1->Canvas->Pen->Color = clRed;

//用RGB marco指定畫筆的顏色。

Image1->Canvas->Pen->Color = (TColor) RGB(255,0,0);

//用色彩選擇對話視窗來指定畫筆的顏色。

Image1->Canvas->Pen->Color = ColorDialog1->Color;

15

Page 16: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas (續)

• TPen內含 Property Width,用來設定畫筆的寬度(粗細程

度),整數資料型態,其內定值為 1。

//指定畫筆寬度為 2。

Image1->Canvas->Pen->Width = 2;

• TPen亦含有 Property Style,用來設定畫筆的風格,列舉

資料型態{ psSolid, psDash, psDot, psDashDot, DashDotDot },

其內定值為 psSolid。

//指定畫筆風格為點線風格。

Image1->Canvas->Pen->Style = psDot;

16

Page 17: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas (續)

• TCanvas提供移動畫筆至特定座標的函式MoveTo。

// 將畫筆移到座標 (100, 100)。

Image1->Canvas->MoveTo(100, 100);

• TCanvas提供從畫筆目前座標畫一條線到特定座標的函式

LineTo。

//從畫筆目前座標 (100, 100)畫一條線到座標 (200, 100)。

Image1->Canvas->LineTo(200, 100);

17

Page 18: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas (續)

• 刷筆元件型態 (Tbrush) 包含 Property Color,用來設定刷

筆的顏色,其設定的方法和設定畫筆的方法是一樣的。

// 用預先定義的常數 clRed、clGreen... 指定刷筆的顏色。

Image1->Canvas->Brush->Color = clGreen;

//用RGB marco指定刷筆的顏色。

Image1->Canvas->Brush->Color = (TColor) RGB(0, 255, 0);

//用色彩選擇對話視窗來指定刷筆的顏色。

Image1->Canvas->Brush->Color = ColorDialog1->Color;

18

Page 19: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas (續)

• TBrush亦含有 Property Style,用來設定刷筆的風格,

//指定刷筆風格為實心風格。

Image1->Canvas->Brush->Style = bsSolid;

//指定刷筆風格為斜交叉風格。

Image1->Canvas->Brush->Style = bsDiagCross;

19

Page 20: Image histogram and histogram equalization 影像直方圖與直方圖均化

畫布元件型態 TCanvas (續)

• TCanvas提供將特定舉行區域填滿的函式 FillRect。

// 將刷筆將 Rect(50, 100, 80, 200)區域填滿。

Image1->Canvas->FillRect(Rect(50, 100, 80, 200));

20

Page 21: Image histogram and histogram equalization 影像直方圖與直方圖均化

直方圖均化

Histogram Equalization

21

Page 22: Image histogram and histogram equalization 影像直方圖與直方圖均化

直方圖均化 Histogram Equalization

• 直方圖均化(histogram equalization) 是一種自動調整影像

對比的演算法。

• 直方圖均化演算法非常簡單,只要將原影像 f 的像素色彩

值 f(x, y) 的累積密度函數值乘上最大色階值,即為調整後

影像 g 的像素色彩值 g(x, y)。

g(x, y) = cdf ( f(x, y) ) * 255

22

Page 23: Image histogram and histogram equalization 影像直方圖與直方圖均化

23

Page 24: Image histogram and histogram equalization 影像直方圖與直方圖均化

24