chapter 4 histogram and histogram equalization 43...

11
สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ 43 Chapter 4 Histogram and Histogram Equalization ฮิสโทแกรม(Histogram) ในกระบวนการประมวลผลภาพ หมายถึงการแสดงขอมูลทางสถิติของ ภาพดิจิตอลเพื่อแสดงใหเห็นคุณลักษณะตางๆของภาพ เชนการแสดงสถิติสวนประกอบแมสีตางๆของภาพ หรือการแสดงขอมูลทางสถิติในระดับขอมูลภาพขาว-ดํา เปนตน เพื่อนําขอมูลทางสถิติที่ไดใชในการ วิเคราะหขอมูลภาพ เพื่อปรับระดับความสวางของภาพใหเหมาะสม สามารถทําไดโดยใชวิธี Histogram Equalization เพื่อทําการกระจายระดับความสวางของภาพ ทําใหภาพมีความคมชัดมากยิ่งขึ้น การประมวลผลภาพในเรื่องของ การแสดงฮิสโทแกรม และการทํา Histogram Equalization จะใช โปรเจ็ค ImageProcessing ซึ่งตอเนื่องจากบทที่ผานมาไดเตรียมความสามารถพื้นฐานตางๆของโปรแกรมไว เรียบรอยแลว ดังนั้นสามารถแกไขหรือเพิ่มโคดโปรแกรมในสวนของการคํานวณฮิสโทแกรมลงในคลาส CMyAlgorithm และเพิ่มรายละเอียดของเมนูใหมีความสามารถเรียกใชคําสั่งการแสดงฮิสโทแกรม และการ ทํา Histogram Equalization ได โดยมีขั้นตอนดังนีขั้นตอนที่ 1 การเพิ่มฟงกชันในคลาส CMyAlgorithm การประมวลผลภาพดิจิตอลดวยโปรแกรม Mr.Nattaphol Jasungnuen Institute of Technological Development for Industry (ITDI) King Mongkut’s University of Technology North Bangkok 1.1 เปดหนาตาง Class View แสดงรายละเอียดคลาสทั้งหมดของโปรเจ็ค 1.2 เลือกคลาส CMyAlgorithm คลิ๊กขวา เลือกการ Add Function จะปรากฎ ไดอะล็อกดังภาพที่ 2 1.3 เพิ่มฟงกชันตางๆดังตารางที่ 1 ลงในไดอะล็อกดังภาพที่ 2 ตารางที่1 ฟงกชันตางๆที่เพิ่มลงในคลาส Return type: Function name: Access: Parameter: void HistogramEqualization public - 1.4 เลือก Finish เมื่อเสร็จสิ้นขั้นตอน ภาพที1 การเพิ่มฟงกชันลงในคลาส CMyAlgorithm

Upload: others

Post on 19-Feb-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

43 Chapter 4 Histogram and Histogram Equalization

ฮิสโทแกรม(Histogram) ในกระบวนการประมวลผลภาพ หมายถึงการแสดงขอมูลทางสถิติของ

ภาพดิจิตอลเพื่อแสดงใหเห็นคุณลักษณะตางๆของภาพ เชนการแสดงสถิติสวนประกอบแมสีตางๆของภาพ

หรือการแสดงขอมูลทางสถิติในระดับขอมูลภาพขาว-ดํา เปนตน เพื่อนําขอมูลทางสถิติที่ไดใชในการ

วิเคราะหขอมูลภาพ เพื่อปรับระดับความสวางของภาพใหเหมาะสม สามารถทําไดโดยใชวิธี Histogram

Equalization เพื่อทําการกระจายระดับความสวางของภาพ ทําใหภาพมีความคมชัดมากยิ่งขึ้น

การประมวลผลภาพในเรื่องของ การแสดงฮิสโทแกรม และการทํา Histogram Equalization จะใช

โปรเจ็ค ImageProcessing ซึ่งตอเนื่องจากบทที่ผานมาไดเตรียมความสามารถพื้นฐานตางๆของโปรแกรมไว

เรียบรอยแลว ดังนั้นสามารถแกไขหรือเพิ่มโคดโปรแกรมในสวนของการคํานวณฮิสโทแกรมลงในคลาส

CMyAlgorithm และเพิ่มรายละเอียดของเมนูใหมีความสามารถเรียกใชคําส่ังการแสดงฮิสโทแกรม และการ

ทํา Histogram Equalization ได โดยมีขั้นตอนดังนี้

ขั้นตอนที่ 1 การเพิ่มฟงกชันในคลาส CMyAlgorithm

การประมวลผลภาพดิจิตอลดวยโปรแกรม

Mr.Nattaphol Jasungnuen Institute of Technological Development for Industry (ITDI)

King Mongkut’s University of Technology North Bangkok

1.1 เปดหนาตาง Class View แสดงรายละเอียดคลาสทั้งหมดของโปรเจ็ค

1.2 เลือกคลาส CMyAlgorithm คลิ๊กขวา เลือกการ Add Function จะปรากฎ

ไดอะล็อกดังภาพที่ 2

1.3 เพิ่มฟงกชันตางๆดังตารางที่ 1 ลงในไดอะล็อกดังภาพที่ 2

ตารางที่1 ฟงกชันตางๆที่เพิ่มลงในคลาส

Return type: Function name: Access: Parameter:

void HistogramEqualization public -

1.4 เลือก Finish เมื่อเสร็จสิ้นขั้นตอน

ภาพที่ 1 การเพิ่มฟงกชันลงในคลาส CMyAlgorithm

Page 2: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

44 Chapter 4 Histogram and Histogram Equalization

ภาพที่ 2 ไดอะล็อกสําหรับเพิ่มชื่อฟงกชัน ภาพที่ 3 แสดงรายละเอียดฟงกชัน

เมื่อทําการเพิ่มฟงกชันเสร็จสิ้นแลว ในสวนของ Tap Class View จะแสดงรายละเอียดของฟงกชันที่

เพิ่มเขามาดังภาพที่ 3 ผูเขียนโปรแกรมสามารถใชเมาทคลิ๊กที่ชื่อฟงกชั่นตางๆใน Class View เพื่อแกไขหรือ

เพิ่มโคดโปรแกรมภายในฟงกชันได

ขั้นตอนที่ 2 การเพิ่มรายละเอียดของเมนู (Menu)

ภาพที่ 4 แสดง Resource View ภาพที่ 5 การ Insert New เมนู

การเพิ่มเมนูเปนการสรางสวนติดตอกับผูใชงาน เพื่อใหผูใชงานสามารถเลือกใชเมนูการทํางานได

ตามตองการ การเพิ่มเมนูมีขั้นตอนดังนี้

2.1 เลือก Tap Resource View แสดงรายละเอียดเมนูดังภาพที่ 4

2.2 ดับเบิ้ลคลิ๊กเลือก IDR_ImageProcessingTYPE จะปรากฎเมนูดังภาพที่ 5

2.3 คลิ๊กขวาบนเมนูบารเพ่ิมรายละเอียดของเมนูทั้งหมดดังภาพที่ 6

Page 3: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

45 Chapter 4 Histogram and Histogram Equalization

ภาพที่ 6 แสดงรายละเอียดของเมนู

ขั้นตอนที่ 3 การเชื่อมโยงเมสเสจใหกับเมนู (Menu)

การกําหนดฟงกชันใหสามารถเรียกใชดวยเมนูตางๆท่ีเราสรางขึ้นนั้นจะเรียกวา แม็พเมสเสจ

ในบทนี้จําเปนตองแม็พฟงกชันจํานวน 2 ฟงกชันดังตารางที่ 2

ตารางที่ 2 กําหนด Member function

Menu Message map Member function

Histogram Eqaulization COMMAND OnHistogramEqaulization()

R-G-B Histograms COMMAND OnRGBHistogram ()

สําหรับการแม็พเมสเสจ มีขั้นตอนดังนี้

คลิ๊กขวาที่เมนูยอยจะปรากฎ pop-up เมนู ใหเลือกรายการ Add Event Handler จะปรากฎ

ไดอะล็อก Add Event Handler Wizard ดังภาพที่ 8

ชอง Messages type เลือกที่เมสเสจ COMMAND

ชอง Class list เลือกคลาส CImageProcessingView

ฟงกชัน Function handler name: ปรกติวิซารดจะตั้งชื่อฟงกชันใหอัตโนมัติ

คลิ๊กปุม Add and Event เพื่อเพิ่มฟงกชัน คลาสวิซารดจะทําการเพิ่มฟงกชันใหอัตโนมัติ

ใหทําการเพิ่มฟงกชันดังตารางที่ 2 ทั้งหมด

รายเอียดเมนูดังนี้

1. Histogram Equalization แสดงภาพที่ผานการทํา Histogram Equalization

2. R-G-B Histogram แสดงกราฟฮิสโทแกรม แมสีตางๆของภาพ

Page 4: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

46 Chapter 4 Histogram and Histogram Equalization

ภาพที่ 7 Pop-up รายการ Add Event Handler ภาพที่ 8 แสดง Event Handler Wizard

เมื่อทําการแม็พเมสเสจใหกับเมนูทั้งหมดแลว ผูใชงานก็จะสามารถเรียกใชฟงกชันตางๆที่ผานทาง

เมนูได ในขั้นตอนตอไปจะเพิ่มโคดโปรแกรมลงในฟงกชนัตางๆเพื่อใหทํางานตามที่ตองการ

ขั้นตอนที่ 4 การเพิ่มโคดโปรแกรมลงในคลาส CMyAlgorithm

ในการเพิ่มโคดโปรแกรมลงในฟงกชันตางๆของคลาส CMyAlgorithm ประกอบดวยฟงกชันการ

ทํา Histogram Equalization เพียงฟงกชันเดียวเทานั้น โดยจะใชสมการคณิตศาสตรอยางงายชวยในการ

คํานวณ Histogram Equalization เพื่อทํากระจายระดับความสวางของภาพ ดังนี้

สมการ Histogram Equalization คือ 0

;k

j

kj

nS

n

0,1,2,3.... 1k L (1)

เมื่อ kS คือ คาเอาตพุตของ Histogram Equalization

n คือ จํานวนพิกเซลทั้งหมด

jn คือ จํานวนพิกเซลที่ระดับความสวางตางๆ 0,1, 2,3.... 1j L

L คือ ระดับความสวางสูงสุด

Page 5: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

47 Chapter 4 Histogram and Histogram Equalization

ฟงกชันการทํา Histogram Equalization ดังนี้

void CMyAlgorithm::HistogramEqualization(void) { if (IsIndexed()) return; //ตรวจสอบชนิดขอมลูภาพ

CMyAlgorithm image; //สรางอ็อปเจก็ตใหมจากคลาส CMyAlgorithm int *pRed = new int [256]; int *pGreen = new int [256]; int *pBlue = new int [256];

memset( pBlue, 0, ( 256 ) * sizeof( int ) ); //เคลียรขอมูลในบัฟเฟอร memset( pRed , 0, ( 256 ) * sizeof( int ) ); memset( pGreen, 0, ( 256 ) * sizeof( int ) );

int maxWidth = GetWidth(), maxHigh = GetHeight(); //เก็บคาขนาดภาพตนฉบบั

VERIFY(image.CreateEx(maxWidth,maxHigh, GetBPP(),BI_RGB));

BYTE *pSrc;BYTE *pNew; //สรางตัวแปรพอยนเตอรสําหรับอานขอมูลภาพ

for (int y=0; y <maxHigh ; y++) { for (int x=0; x<maxWidth; x++)

{ //เก็บสถิติจํานวนความถี่ที่เกิดขึ้นซํ้าๆ ของแมสีแดง สีเขียว สีนํ้าเงิน pSrc = (BYTE*)GetPixelAddress( x,y ); pRed[pSrc[2]]++; pGreen[pSrc[1]]++; pBlue[pSrc[0]]++; } }

int nPixels = maxWidth*maxHigh; //คํานวณหาจํานวนพิกเซลทั้งหมดของภาพ int sR, sGr, sB;

sR = sGr = sB = 0;

float factor = (float)(255.0/nPixels); //คํานวณหา factor

//สรางบัฟเฟอรเก็บคาสีตางๆ

int *sHRed = new int [256]; int *sHGreen = new int [256]; int *sHBlue = new int [256]; memset( sHBlue, 0, ( 256 ) * sizeof( int ) ); memset( sHRed , 0, ( 256 ) * sizeof( int ) ); memset( sHGreen, 0, ( 256 ) * sizeof( int ) ); for (int i = 0; i < 256; i++)

{ //เก็บคาผลรวมของฮิสโทแกรมในแตละระดบัลงในตัวแปร sR += pRed[i];

sGr += pGreen[i]; sB += pBlue[i];

//นําคาที่ไดคูณกับ factor แลวเก็บในบัฟเฟอรแมสีตางๆ

sHRed[i] =(int)((sR*factor)+0.5); sHGreen[i] =(int)((sGr*factor)+0.5); sHBlue[i] =(int)((sB*factor)+0.5); } for (int y=0; y <maxHigh ; y++) { for (int x=0; x<maxWidth; x++)

{ //แปลงคาบัฟเฟอรในแตละแมสี ใหเปนขอมลูภาพใหม

pSrc = (BYTE*)GetPixelAddress( x,y ); pNew = (BYTE*)image.GetPixelAddress(x,y); *pNew++ = (BYTE)sHBlue[pSrc[0]]; *pNew++ = (BYTE)sHGreen[pSrc[1]]; *pNew = (BYTE)sHRed[pSrc[2]]; } }

ExchangeImg(image); //แลกเปลี่ยนขอมูลภาพ

delete [] pRed ; delete [] pGreen ; delete [] pBlue; //คืนคาหนวยความจําดวยโอเปอรเรเตอร new

delete [] sHRed; delete [] sHGreen ; delete [] sHBlue; }

Page 6: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

48 Chapter 4 Histogram and Histogram Equalization

จากฟงกชันการทํา Histogram Equalization จะทําการตรวจสอบขอมูลภาพตนฉบับตองไมเปนภาพ

ดิจิตอลชนิดอินเด็กซ (บีบอัดขอมูล) จากนั้นทําการคํานวณ Histogram Equalization จากสมการที่ 1 ดังนี้

คํานวณความถี่ท่ีเกิดขึ้นซ้ําๆ ณ ระดับความเขมพิกเซลที่มีคาตั้งแต 0-255 เชน ระดับความเขมที่

255 จะมีการเกิดขึ้นซ้ําๆกันจํานวน 500 ครั้ง หมายถึงฮิสโทแกรมจะมีความถี่เทากับ 500 ณ

ระดับความเขมพิกเซลท่ี 255

คํานวณผลรวมการ Normalize ของฮิสโทแกรม โดยหาผลรวมของฮิสโทแกรมในแตละระดับ

ความเขม เชนที่ระดับความเขมที่ 5 จะตองรวมคาฮิสโทแกรม ณ ระดับความเขมที่ 0,1,2.. และ

5 เขาดวยกัน แลวนําคาผลรวมฮิสโทแกรมในแตละระดับความเขม คูณกับคาพิกเซลสูงสุดคือ

255 แลวหารดวยจํานวนพิกเซลท้ังหมดของภาพ

ในการเขียนโปรแกรมคํานวณฮิสโทแกรม เริ่มตนดวยการสรางตัวแปรพอยนเตอรชนิดเก็บคาจํานวนเต็ม

(int) คือ pRed, pGreen และ pBlue เพื่อเก็บจํานวณความถี่ท่ีเกิดขึ้นซ้ําๆ การใชตัวแปรพอยนเตอรจะตองทํา

การเคลียรคาบัฟเฟอรใหเปนศูนยดวยคําสั่ง memset กอนเสมอ แลวจึงคํานวณคาฮิสโทแกรมในแตละแมสีที่

ไดเก็บในตัวแปรพอยนเตอร จากนั้นคํานวณผลรวมการทํา Normalize ของฮิสโทแกรม เก็บในตัวแปรใหม

คือ sHRed, sHGreen, sHBlue เพื่อเก็บคาผลรวมการทํา Normalize ของสีแดง สีเขียว และสีน้ําเงิน ตามลําดับ

ผลรวมฮิสโทแกรมในแตละระดับความเขมจะเก็บที่ตัวแปร sR, sGr, และ sB แลวนําผลรวมคูณกับคา factor

แลวแปลงคาที่ไดเปนเอาตพุตของภาพใหม

ขั้นตอนที่ 5 การเพิ่มโคดโปรแกรมลงในคลาส CImageProcessingView

ในสวนของคลาสวิวทําหนาที่แสดงขอมูลภาพบนหนาจอคอมพิวเตอร โดยแสดงภาพที่ผานการ

ประมวลผลภาพที่มีขนาดเทากับภาพตนฉบับ ฟงกชันหลักในการแสดงขอมูลภาพจะใชฟงกชัน

GetDocument เพื่ออานขอมูลจากคลาสด็อกคิวเมนต จากนั้นคลาสวิวก็จะทําการวาดภาพออกทางจอภาพ

ดวยฟงกชัน OnDraw นอกจากนั้นคลาสวิวจะทําหนาที่สงขอมูลไปยังคลาส CMyAlgorithm เพื่อทําการ

ประมวลผลการทํา Histogram Equalization โดยมีการเพิ่มขอมูลลงในฟงกชันที่ไดทําการแม็พเมสเสจใน

ขั้นตอนที่ 3 เรียบรอยแลว ใหทําการเพิ่มโคดโปรแกรมลงในฟงกชันตางๆดังนี้

เพิ่มโคด CImageProcessingView::OnHistogramEqaulization ดังนี้

void CImageProcessingView::OHistogramEqaulization() { CImageProcessingDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CMyAlgorithm* pImage = pDoc->GetImage(); if(pImage == NULL) return; pImage->HistogramEqualization(); pDoc->UpdateAllViews(NULL); }

Page 7: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

49 Chapter 4 Histogram and Histogram Equalization

เพิ่มโคด CImageProcessingView::OnRGBHistograms ดังนี้

การทํางานของฟงกชันเริ่มตนดวยการหาคาพอยนเตอรของคลาสด็อกคิวเมนต เพื่อชี้ไปยังฟงกชัน

GetImage ซ่ึงจะคืนคาพอยนเตอรของคลาส CMyAlgorithm จากนั้นจะสรางตัวแปรพอยนเตอรสําหรับเก็บ

คาสีแดง (pRed) สีเขียว (pGreen) สีน้ําเงิน (pBlue) สีขาว-ดํา (pGray) เพื่อเก็บคาความถี่ท่ีเกิดซ้ํา (Frequency

Count) สงคาที่ไดพล็อตกราฟฮิสโทแกรมในไดอะล็อก ผานอ็อปเจ็กต mHis เปนการสืบทอดมาจากคลาส

void CImageProcessingView::OnRGBHistograms() { CImageProcessingDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CMyAlgorithm * pImage = pDoc->GetImage(); if (pImage == NULL) return; if (pImage->IsIndexed()) return; int *pGray, *pRed, *pGreen, *pBlue; pGray = new int [256]; pRed = new int [256];

pGreen = new int [256]; pBlue = new int [256]; for (int i = 0; i < 256; i++) pGray[i] = 0; memset(pBlue, 0, (256)*sizeof(int)); memset(pRed , 0, (256)*sizeof(int)); memset(pGreen, 0, (256)*sizeof(int)); int maxX = pImage->GetWidth(), maxY = pImage->GetHeight(); BYTE *pSrc; BYTE gray; for (int y=0; y < maxY ; y++) { for (int x=0; x<maxX; x++) { pSrc = (BYTE*)pImage->GetPixelAddress( x,y ); gray = (BYTE)((pSrc[0]+pSrc[1]+pSrc[2])/3); pGray[gray]++;

pRed[pSrc[2]]++; pGreen[pSrc[1]]++;

pBlue[pSrc[0]]++; } } int nPixels = maxX*maxY; CHistogram mHis; mHis.m_pG = pGray; mHis.m_pR = pRed; mHis.m_pGr =pGreen; mHis.m_pB = pBlue; mHis.m_nPixels = nPixels; mHis.DoModal(); delete [] pGray; delete [] pRed ; delete [] pGreen ; delete [] pBlue; }

คํานวณสถิติของระดบัขาว-ดํา

สีแดง สีเขียว และสีน้ําเงิน

สงผลการคํานวณที่ไดใหกับไดอะล็อกสําหรับ

พล็อตกราฟฮิสโทแกรม สวนประกอบสีแดง

สีเขียว สีน้ําเงิน และระดับขาว-ดํา

Page 8: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

50 Chapter 4 Histogram and Histogram Equalization

CHistogram แลวทําการกําหนดคาเริ่มตนตางๆใหกับสมาชิกเพื่อแสดงกราฟฮิสโทแกรม จากนั้นเรียกใช

คําสั่ง DoModal เพ่ือแสดงไดอะล็อกสําหรับพล็อตกราฟฮิทโทแกรมได

ขั้นตอนที่ 5 ทดสอบผลการทํางานของโปรแกรม

การทํางานของโปรแกรมเริ่มตนดวยการเลือกภาพบิตแมพที่ตองการ เปดเขามายังโปรแกรม

ImageProcessing ในบทนี้ทดสอบดวยภาพบิตแมพซ่ึงขอมูลในแตละภาพมีคุณสมบัติเหมือนกันทุกประการ

เพื่อที่จะแสดงใหเห็นถึงการเปลี่ยนแปลงของภาพเมื่อผานกระบวนการทํา Histogram Equalization มี

ขั้นตอนการทดสอบดังนี้

เลือกรัน(Run) โปรแกรมจะปรากกฎหนาตางของโปรแกรม ImageProcessing ใหทําการเปดไฟลขอมูล

ภาพบิตแมพ จะปรากฎไดอะล็อกสําหรับเปดไฟลภาพ เลือกภาพที่ตองการ ดังภาพที่ 9

ภาพที่ 9 หนาตางโปรแกรม Image Processing

Page 9: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

51 Chapter 4 Histogram and Histogram Equalization

ทําการเปดภาพตนฉบับจํานวน 1 ภาพ ดังภาพที ่10 จากนัน้เลือกเมนู Histogram > R-G-B Histogram

ผลที่ไดเปนการแสดงกราฟทางสถิติของขอมูลภาพ ดังภาพที่ 11

ภาพที่ 10 ภาพตนฉบับสําหรับการแสดงสถิติขอมูลภาพดวยฮิทโทแกรม

ภาพที่ 11 แสดงสถิติขอมูลภาพตนฉบับดวยฮิทโทแกรม

Page 10: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

52 Chapter 4 Histogram and Histogram Equalization

จากภาพตนฉบับ เลือกเมนู Histogram > Histogram Equalization ผลที่ไดทําใหภาพมีความสวาง

กระจายทั่วทั้งภาพ สงผลใหภาพคมชัดมากขึ้น ดังภาพที่ 12 และแสดงกราฟทางสถิติของขอมูลภาพที่

ผานการทํา Histogram Equalization ดังภาพที่ 13

ภาพที่ 12 การทํา Histogram Equalization

ภาพที่ 13 แสดงสถิติขอมูลภาพที่ผานการทํา Histogram Equalization

Page 11: Chapter 4 Histogram and Histogram Equalization 43 …k-rc.net/imageupload/29101/6_HistogramEqualization.pdf · 2012-05-31 · ไดอะล็อกดังภาพที่ 2

สํานักพัฒนาเทคโนโลยีเพื่ออุตสาหกรรม มหาวิทยาลัยเทคโนโลยีพระจอมเกลาพระนครเหนือ

53 Chapter 4 Histogram and Histogram Equalization

จากขอมูลจากภาพตนฉบับแสดงการเปรียบเทียบกับขอมูลภาพที่ผานกระบวนการทํา Histogram

Equalization สามารถแสดงรายละเอียดทางสถิติในแตละสวนประกอบสี ไดดังภาพที่ 14

ภาพที่ 14 แสดงสถิติในแตละสวนประกอบสี

สถิติสวนประกอบสีเขียว

สถิติสวนประกอบสแีดง

สถิติสวนประกอบสีน้ําเงิน

สถิติสวนประกอบระดับสีขาว-ดํา