250 likes | 262 Views
การปรับปรุงคุณภาพภาพเชิงพื้นที่. การปรับปรุงคุณภาพ ( Image Enhancement ).
E N D
การปรับปรุงคุณภาพภาพเชิงพื้นที่การปรับปรุงคุณภาพภาพเชิงพื้นที่
การปรับปรุงคุณภาพ (Image Enhancement) เป็นกระบวนการของการปรับปรุงคุณภาพการเก็บภาพดิจิตอลให้ดีขึ้น เพื่อประโยชน์ต่อการแปลภาพ โดยการจัดการกับภาพด้วยซอฟต์แวร์ ตัวอย่างเช่น การกำจัดสิ่งรบกวน (Noise) ออกจากภาพ การทำให้ภาพจางลงหรือเข้มขึ้น หรือเพื่อการเพิ่มหรือลดความคมชัดของภาพ การปรับปรุงคุณภาพสามารถแบ่งออกได้ 2 วิธี ได้แก่ • การปรับปรุงคุณภาพภาพเชิงพื้นที่ (Image Enhancement in Spatial Domain) • การปรับปรุงคุณภาพภาพเชิงความถี่ (Image Enhancement in Frequency Domain)
โดเมนเชิงพื้นที่ หมายถึงระนาบภาพ x และ y คือ ระยะทางในแนวแกนตั้งและแกนนอน วัดจากจุดกำเนิด และเป็นวิธีการในการจัดการภาพโดยตรงจากพิกเซลในภาพ สามารถเขียนสูตรได้ดังนี้ g(x,y) = T[f(x,y)] หรื่อ s = T(r) เมื่อ f(x,y) = ภาพอินพุต g(x,y) = ภาพเอาต์พุต T[] = ฟังก์ชั่นที่ถูกกำหนดให้พื้นที่รอบๆ จุด (x,y)
คอนโวลูชั่น (Convolution) เป็นวิธีการกรองข้อมูลภาพเพื่อกรองสิ่งรบกวนออกจากภาพ โดยอาศัยหลักการทางคณิตศาสตร์ ที่เรียกว่า Convolution ซึ่งจะใช้หน้าต่างการกรอง (Kernel)ในลักษณะ 2 มิติ โดยเลื่อนหน้าต่างให้ตารางที่อยู่ศูนย์กลางวิ่งผ่านทีละจุดภาพ (Pixel)แล้วแทนค่าจุดภาพนั้นๆ ด้วยค่าเฉลี่ยหรือกรรมวิธีทางคณิตศาสตร์อื่นๆ ของบรรดาจุดภาพข้างเคียงภายในหน้าต่างกรอง คอนโวลูชั่น คือ การคูณตัวเลขเข้าด้วยกันของอาร์เรย์ (Arrays) 2 อาร์เรย์ ที่ปกติจะมีขนาดแตกต่างกัน แต่มีมิติเดียวกัน ซึ่งจะทำให้ได้ตัวเลขของอาร์เรย์ที่ 3 จากมิติเดียวกัน วิธีนี้สามารถใช้ในการประมวลผลภาพ เพื่อจะใช้ใช้เป็นเครื่องมือให้ผู้ทำงานได้เอาต์พุตที่มีค่าพิกเซลผสมเชิงเส้นอย่างง่ายของค่าพิกเซลอินพุต ในการประมวลผลภาพ อาร์เรย์ที่หนึ่งคือ ภาพอินพุตระดับสีเทา และอาร์เรย์ที่สองจะมีขนาดเล็กกว่า หรือที่เรียกว่า หน้าต่างกรอง ปกติจะได้แมทริกซ์ 3 x 3 หรือ 5 x 5
การกรองเชิงเส้นของของภาพสามารถทำได้โดยตัวดำเนินการที่เรียกว่า คอนโวลูชั่น (Convolution) คือ การทำงานกับพื้นที่ใกล้เคียง ซึ่งในพิกเซลเอาต์พุตแต่ละค่าคือ ผลรวมของน้ำหนักของพิกเซลอินพุตใกล้เคียง แมทริกซ์ของน้ำหนักเรียกว่า หน้าต่างกรองคอนโวลูชั่น (Convolution Kernel)หรือเรียกว่าตัวกรอง และหมุนหน้าต่างกรองคอนโวลูชั่นไป 180 องศา
วิธีการคำนวณพิกเซลเอาต์พุตวิธีการคำนวณพิกเซลเอาต์พุต จุดกำเนิดอยู่ที่จุดศูนย์กลางของหน้าต่างกรอง
1. ทำการหมุนหน้าต่างกรองคอนโวลูชั่น 180 องศา
2. เลื่อนจุดศูนย์กลางของหน้าต่างกรองคอนโวลูชั่นให้ไปอยู่ด้านบนขององค์ประกอบต่างๆ ของภาพอินพุต 3. คูณค่าน้ำหนักในแต่ละจุดของหน้าต่างกรองคอนโวลูชั่นเข้ากับพิกเซลของแมทริกซ์ที่องค์ประกอบต่างๆ 4. รวมผลลัพธ์ของแต่ละองค์ประกอบตามขั้นตอนที่ 3 หมายเหตุ แมทริกซ์คือค่า [แนวตั้ง,แนวนอน] หรือ [column,row]
การกรองภาพให้เรียบเชิงพื้นที่ (Smoothing Spatial Filters) ใช้เป็นหลักสำหรับการเบลอภาพและลดสัญญาณรบกวนในภาพ ด้วยการใช้ตัวกรองเฉลี่ยและคำสั่งตัวกรองทางสถิติ ที่นิยมใช้มีอยู่ 2 วิธีคือ • การกรองค่าเฉลี่ย (Mean Filtering) • การกรองค่ามัธยฐาน (Median Filtering)
การกรองค่าเฉลี่ย (MeanFiltering) หรือเรียกว่า ตัวกรองความถี่ต่ำผ่าน (Low Pass Filters)เป็นวิธีการที่ง่ายในการกรองภาพให้ราบเรียบ เป็นการลดระดับความเข้มต่างๆ ระหว่างพิกเซล และใช้เพื่อลดนอยส์ (Noise)ในภาพ แต่ก็จะทำให้ภาพเบลอได้ หรือเรียกว่า ตัวกรองความถี่ต่ำผ่าน (Low Pass Filters)เป็นวิธีการที่ง่ายในการกรองภาพให้ราบเรียบ เป็นการลดระดับความเข้มต่างๆ ระหว่างพิกเซล และใช้เพื่อลดนอยส์ (Noise)ในภาพ แต่ก็จะทำให้ภาพเบลอได้
การกรองค่าเฉลี่ย (MeanFiltering) เป็นวิธีที่ง่านต่อการแทนที่ค่าพิกเซลแต่ละพิกเซลในภาพด้วยค่าเฉลี่ยของพื้นที่ใกล้เคียง รวมทั้งตัวมันเอง การกรองด้วยค่าเฉลี่ยมักจะใช้ตัวกรองคอนโวลูชั่น ปกติจะใช้หน้าต่างกรองขนาด 3 x 3 หรือ 5 x 5 เพื่อการกรองให้เรียบมากขึ้น
ตัวอย่าง imgEnhance1.m x=imread(‘coins.png’); f=ones(3,3)/9; %ใช้หน้าต่างตัวกรองเฉลี่ยขนาด 3x3 x1=imfilter(x,f); %คำสั่งกรองภาพเฉลี่ย imshow(x),title(‘original image’); figure,imshow(x1),title(‘filtered 3x3’) f1=ones(5,5)/25; %ใช้หน้าต่างตัวกรองเฉลี่ยขนาด 5x5 x2=imfilter(x,f1); figure,imshow(x2),title(‘filtered 5x5’) f2=ones(8,8)/64; %ใช้หน้าต่างตัวกรองเฉลี่ยขนาด 8x8 x3=imfilter(x,f2); figure,imshow(x3),title(‘filtered 8x8’)