Morphology Transformations
Morphology Transformations เป็นตัวดำเนินการพื้นฐานที่ใช้ในการเปลี่ยนแปลงลักษณะรูปร่างหรือโครงสร้างของภาพ โดยใช้องค์ประกอบโครงสร้าง (Structuring Element) เป็นตัวกำหนดรูปร่าง มีตัวดำเนินการพื้นฐานของ Morphology Transformations จะมีสองตัว คือ การกัดเซาะ (Erosion) และการขยาย (Dilation) จากนั้นจะมีรูปแบบที่หลากหลายที่พัฒนามาจากตัวดำเนินการพื้นฐานอย่างเช่น การเปิด (Opening) การปิด (Closing) การไล่ระดับ (Gradient) และอื่น ๆ ให้เลือกใช้
Structuring Element
องค์ประกอบโครงสร้าง (Structuring Element) คือ เมทริกซ์ย่อยที่ถูกกำหนดขึ้นเพื่อใช้ดำเนินการกับรูปภาพ สามารถเรียกได้อีกชื่อหนึ่ง คือ เคอร์เนล (Kernels) ขนาดขององค์ประกอบโครงสร้างนั้นส่วนใหญ่แล้วจะเป็นจำนวนคี่ เช่น 3*3 หรือ 5*5 เป็นต้น
Erosion
การกัดเซาะ (Erosion) มีแนวคิดคล้ายกับการพังทลายของหน้าดิน หรือก็คือตัวดำเนินการนี้จะทำการกัดเซาะขอบเขตของวัตถุในรูปภาพ ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งของขอบเขตของวัตถุที่ไม่ถูกปิดล้อมโดยสมบูรณ์ที่มีค่าพิกเซลเท่ากับ 1 ให้มีค่าเป็น 0 (ลดสีขาว ขยายสีดำ )มักถูกนำมาใช้ในการลบสัญญาณรบกวนขนาดเล็กในภาพและใช้กับการแยกวัตถุที่เชื่อมต่อกัน

Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ erosion
iterations => จำนวนครั้งที่ใช้ในการ erosion
Example:

Dilation
การขยาย (Dilation) มีแนวคิดตรงข้ามกับการกัดเซาะ คือตัวดำเนินการนี้จะทำการยายขอบเขตของวัตถุในรูปภาพ เพื่อเปลี่ยนแปลงรูปร่างให้เป็นไปตามองค์ประกอบโครงสร้าง ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งพิกเซลที่อยู่ใกล้ขอบเขตของวัตถุที่ไม่ถูกปิดล้อมโดยสมบูรณ์ที่มีค่าพิกเซลเท่ากับ 0 ให้มีค่าเป็น 1 (ขยายสีขาว ลดสีดำ) มักถูกนำมาใช้ในการขยายขอบเขตของวัตถุที่อยู่ใกล้กันให้กลายเป็นวัตถุชิ้นเดียวกัน

Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ dilation
iterations => จำนวนครั้งที่ใช้ในการ dilation
Example:

Closing
การปิด (Closing) เป็นตัวดำเนินการที่มาจากการทำงานคู่กันของตัวดำเนินพื้นฐาน คือ การกัดเซาะและการขยาย มีหลักการทำงานที่เริ่มจากขยายขอบเขตตามด้วยการกัดเซาะเพิ่มเติมโดยใช้องค์ประกอบโครงสร้าง ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งที่อยู่ใกล้ขอบเขตของวัตถุที่มีค่าเท่ากับ 0 ให้มีค่าเป็น 1 จากนั้นจึงจะเป็นการเปลี่ยนค่าของตำแหน่งขอบเขตของวัตถุที่เหลืออยู่ที่มีค่าพิกเซลเท่ากับ 1 ให้มีค่าเป็น 0 มักถูกนำมาใช้ในการปิดช่องว่างขนาดเล็กของภาพไบนารี่ให้สมบูรณ์
Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
cv2.MORPH_CLOSE => ตัวดำเนินการของ Closing
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ Closing
Example:

Opening
การเปิด (Opening) เป็นตัวดำเนินการที่มาจากการทำงานคู่กันของตัวดำเนินการพื้นฐานคือ การกัดเซาะและการขยาเช่นเดียวกับการปิดย แต่มีลำดับการดำเนินงานที่สลับกัน เริ่มจากการกัดเซาะตามด้วยการขยายโดยการใช้องค์ประกอบโครงสร้าง ถ้าหากใช้กับภาพไบนารี่จะเป็นการเปลี่ยนค่าของตำแหน่งที่อยู่ใกล้ขอบเขตของวัตถุที่มีค่าเท่ากับ 1 ให้มีค่าเป็น 0 จากนั้นจึงจะเป็นการเปลี่ยนค่าของตำแหน่งขอบเขตของวัตถุที่เหลืออยู่ที่มีค่าพิกเซลเท่ากับ 0 ให้มีค่าเป็น 1 มักถูกนำมาใช้ในการหารูปทรงที่มีลักษณะเฉพาะของภาพไบนารี่

Parameters:
image => ภาพไบนารี่หรือภาพ grayscale ที่ต้องการนำมาใช้
cv2.MORPH_OPEN => ตัวดำเนินการของ Opening
kernel => องค์ประกอบโครงสร้างที่ใช้สำหรับการ Opening
Example:

Last updated
Was this helpful?