Page 90 -
P. 90
โครงการหนังสืออิเล็กทรอนิกส์ เฉลิมพระเกียรติสมเด็จพระเทพรัตนราชสุดาฯ สยามบรมราชกุมารี
81
3.2.1 การปรับคาความเปรียบตาง (Contrast Stretching)
Contrast stretching หรือ histogram stretching ทําการแปลงคาความเขมแสงของภาพ
อินพุต โดยใชสมการการแปลงเปนฟงกชันคลายกับฟงกชันในรูปที่ 3.5(ก) โดยจะ
แบงคาความสวางอินพุตออกเปนสามชวงคือชวง [0, a], [a, b] และ [b, 1] คาความ
สวางอินพุตที่มีคานอยกวา a จะถูกปรับเปนคาคงที่คา c และคาความสวางอินพุตที่มี
คามากกวา b จะถูกปรับเปนคาคงที่คา d สวนคาความสวางระหวางคา a และคา b จะ
เปลี่ยนไปดวยสมการเชิงเสน การปรับเปลี่ยนสามารถเขียนในรูปสมการไดดังนี้
⎧ c if u ≤ a
⎪ (d − ) c
⎪
g (u ) = ⎨ (u − ) a if a ≤ u ≤ b (3.1)
⎪ (b − ) a if u ≥
⎪ d b
⎩
โดย u คือคาความสวางของจุดพิกเซล
g(u) คือคาความสวางเอาทพุต
การทํา contrast stretching ใน MATLAB ทําไดโดยการเรียกใชฟงกชันตอไปนี้
imadjust(image_variable name, [a,b], [o,p]);
คําสั่งนี้จะปรับคาความสวางต่ําสุดและคาความสวางสูงสุดของภาพอินพุต [a,b] ให
เปนคาความความสวางต่ําสุดและคาความสวางสูงสุดของภาพเอาทพุต [o,p] โดยคาที่
ต่ํากวาคา a หรือสูงกวาคา b จะถูกปรับใหเปนคาคงที่ และคําสั่งกําหนดให
คาพารามิเตอรทั้งสี่ตัวมีคาความสวางอยูระหวาง 0 ถึง 1 รูปที่ 3.6 แสดงภาพและ
ฮีสโตแกรมของภาพหลังการทํา contrast stretching โดยกําหนดใหความเขมแสงของ
ภาพอินพุตในชวง [0, 0.4] ถูกขยายออกไปครอบคลุมความสวางในชวง [0,0.9] คําสั่ง
ที่ใชในการประมวลผลภาพเปนดังนี้
>> imadjust(im, [0,0.4], [0, 0.9]);