Morphology Transformations
Last updated
Last updated
Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University
Morphology Transformations เป็นตัวดำเนินการพื้นฐานที่ใช้ในการเปลี่ยนแปลงลักษณะรูปร่างหรือโครงสร้างของภาพ โดยใช้องค์ประกอบโครงสร้าง (Structuring Element) เป็นตัวกำหนดรูปร่าง มีตัวดำเนินการพื้นฐานของ Morphology Transformations จะมีสองตัว คือ การกัดเซาะ (Erosion) และการขยาย (Dilation) จากนั้นจะมีรูปแบบที่หลากหลายที่พัฒนามาจากตัวดำเนินการพื้นฐานอย่างเช่น การเปิด (Opening) การปิด (Closing) การไล่ระดับ (Gradient) และอื่น ๆ ให้เลือกใช้
องค์ประกอบโครงสร้าง (Structuring Element) คือ เมทริกซ์ย่อยที่ถูกกำหนดขึ้นเพื่อใช้ดำเนินการกับรูปภาพ สามารถเรียกได้อีกชื่อหนึ่ง คือ เคอร์เนล (Kernels) ขนาดขององค์ประกอบโครงสร้างนั้นส่วนใหญ่แล้วจะเป็นจำนวนคี่ เช่น 3*3 หรือ 5*5 เป็นต้น
การกัดเซาะ (Erosion) มีแนวคิดคล้ายกับการพังทลายของหน้าดิน หรือก็คือตัวดำเนินการนี้จะทำการกัดเซาะขอบเขตของวัตถุในรูปภาพ ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งของขอบเขตของวัตถุที่ไม่ถูกปิดล้อมโดยสมบูรณ์ที่มีค่าพิกเซลเท่ากับ 1 ให้มีค่าเป็น 0 (ลดสีขาว ขยายสีดำ )มักถูกนำมาใช้ในการลบสัญญาณรบกวนขนาดเล็กในภาพและใช้กับการแยกวัตถุที่เชื่อมต่อกัน
Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ erosion
iterations => จำนวนครั้งที่ใช้ในการ erosion
Example:
การขยาย (Dilation) มีแนวคิดตรงข้ามกับการกัดเซาะ คือตัวดำเนินการนี้จะทำการยายขอบเขตของวัตถุในรูปภาพ เพื่อเปลี่ยนแปลงรูปร่างให้เป็นไปตามองค์ประกอบโครงสร้าง ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งพิกเซลที่อยู่ใกล้ขอบเขตของวัตถุที่ไม่ถูกปิดล้อมโดยสมบูรณ์ที่มีค่าพิกเซลเท่ากับ 0 ให้มีค่าเป็น 1 (ขยายสีขาว ลดสีดำ) มักถูกนำมาใช้ในการขยายขอบเขตของวัตถุที่อยู่ใกล้กันให้กลายเป็นวัตถุชิ้นเดียวกัน
Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ dilation
iterations => จำนวนครั้งที่ใช้ในการ dilation
Example:
การปิด (Closing) เป็นตัวดำเนินการที่มาจากการทำงานคู่กันของตัวดำเนินพื้นฐาน คือ การกัดเซาะและการขยาย มีหลักการทำงานที่เริ่มจากขยายขอบเขตตามด้วยการกัดเซาะเพิ่มเติมโดยใช้องค์ประกอบโครงสร้าง ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งที่อยู่ใกล้ขอบเขตของวัตถุที่มีค่าเท่ากับ 0 ให้มีค่าเป็น 1 จากนั้นจึงจะเป็นการเปลี่ยนค่าของตำแหน่งขอบเขตของวัตถุที่เหลืออยู่ที่มีค่าพิกเซลเท่ากับ 1 ให้มีค่าเป็น 0 มักถูกนำมาใช้ในการปิดช่องว่างขนาดเล็กของภาพไบนารี่ให้สมบูรณ์
Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
cv2.MORPH_CLOSE => ตัวดำเนินการของ Closing
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ Closing
Example:
การเปิด (Opening) เป็นตัวดำเนินการที่มาจากการทำงานคู่กันของตัวดำเนินการพื้นฐานคือ การกัดเซาะและการขยาเช่นเดียวกับการปิดย แต่มีลำดับการดำเนินงานที่สลับกัน เริ่มจากการกัดเซาะตามด้วยการขยายโดยการใช้องค์ประกอบโครงสร้าง ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งที่อยู่ใกล้ขอบเขตของวัตถุที่มีค่าเท่ากับ 1 ให้มีค่าเป็น 0 จากนั้นจึงจะเป็นการเปลี่ยนค่าของตำแหน่งขอบเขตของวัตถุที่เหลืออยู่ที่มีค่าพิกเซลเท่ากับ 0 ให้มีค่าเป็น 1 มักถูกนำมาใช้ในการหารูปทรงที่มีลักษณะเฉพาะของภาพไบนารี่
Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
cv2.MORPH_OPEN => ตัวดำเนินการของ Opening
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ Opening
Example: