Page 136 -
P. 136
โครงการหนังสืออิเล็กทรอนิกส์ เฉลิมพระเกียรติสมเด็จพระเทพรัตนราชสุดาฯ สยามบรมราชกุมารี
127
สัมประสิทธิ์ของมาสค ขอแตกตางระหวางการกรองแบบเชิงเสนกับแบบไมเชิงเสน
อยูที่วิธีการคํานวณที่เลือกใช โดยการกรองแบบเชิงเสนจะทําการคํานวณแบบเชิง
เสน คือ การบวกผลคูณระหวางสัมประสิทธิ์มาสคกับคาความสวางใตมาสค ในขณะ
ที่การกรองแบบไมเชิงเสนจะทําการคํานวณแบบไมเชิงเสน เชน การหาคาความสวาง
สูงสุดหรือต่ําสุดใตมาสค เปนตน
คําสั่งพื้นฐาน MATLAB ที่ใชในการกรองแบบไมเชิงเสนมีสองคําสั่ง คือ nlfilter(.)
และ colfilt(.) คําสั่งทั้งสองคําสั่งจะทําการเลื่อนมาสคไปตามจุดภาพภายในรูปแลวทํา
การคํานวณตามฟงกชัน func ที่กําหนดขึ้น รูปแบบการทั่วไปสําหรับการกรองภาพ
ใชงานคําสั่ง nlfilter เปนดังนี้
B = nlfilter(A, [m n], func)
โดยคําสั่งจะทําการเลื่อนมาสคขนาด m × n บนเมตริกซภาพ A แลวคํานวณคาความ
สวางใหมตามสมการะะบุในฟงกชัน func คําสั่งนี้จะทํา zero padding ใหอยาง
อัตโนมัติถาจําเปน โปรแกรมดานลางแสดงตัวอยางการใชงานคําสั่ง nlfilter(.) โดย
คําสั่งในบรรทัดที่สองจะทํา max filter กับภาพ A นั้นคือ คําสั่งจะแทนที่คาความ
สวางของจุดภาพดวยคาความสวางสูงสุดที่อยูภายใตมาสคขนาด 3 × 3 สวนคําสั่งใน
บรรทัดที่สามจะทํา min filter กับภาพ A โดยคําสั่งจะแทนที่คาความสวางของ
จุดภาพดวยคาความสวางต่ําสุดที่พบภายใตมาสคขนาด 3 × 3 ภาพผลลัพธที่ไดหลัง
การทํา max filter จะมีคาความสวางภาพมากขึ้น ในขณะที่ min filter จะทําใหคา
ความสวางของภาพผลลัพธต่ําลงดังแสดงในภาพที่ 4.16
>>A = imread(‘roadPole.jpg’);
>>val_max = nlfilter(A, [3,3], ‘max( x(:) )’;
>>val_min = nlfilter(A, [3,3], ‘min( x(:) )’;