วันเสาร์ที่ 25 มีนาคม พ.ศ. 2560

การ Segmentation กลุ่มข้อมูล ด้วยวิธีการ Voronoi with ImageJ

เป็นวิธีการแสดงการแบ่งส่วนของข้อมูลภาพด้วยรูปแบบลายเส้น ที่เกิดจากการวัด และเปรียบเทียบข้อมูลจุดศูนย์กลางของแต่ละกลุ่ม  และขยายพื้นที่ออกไปจนชนขอบของอีกกลุ่มหนึ่ง

ผลลัพธ์ที่เกิดจากขั้นตอนนี้สามารถกำหนดเป็น 8-bit, 16-bit หรือ 32-bit ได้ หรือเขียนทับลงไฟล์เดิมก็ได้ สามารถตั้งค่าได้ที่ Process->Binary->Options...

ตัวอย่าง
เมื่อผ่านขั้นตอนการทำ Voronoi เรียบร้อยแล้ว จะได้ผลลัพธ์ดังนี้



วีดีโอขั้นตอนการประมวลผล




แสดงการประมวลผลด้วยลำดับภาพ ดังนี้




จากขั้นตอนนี้นับว่า Voronoi เป็นวิธีการการ Segment ที่ดีอีกวิธีหนึ่งที่จะนำไปประยุกต์ใช้งานได้อีกหลากหลาย

วันศุกร์ที่ 24 มีนาคม พ.ศ. 2560

การ Segmentation กลุ่มข้อมูล ด้วยวิธีการ Watershed กับ ImageJ


Watershed

เป็นเทคนิคที่ใช้ในการแยกส่วนของภาพออกเป็นส่วน ๆ โดยใช้หลักการวิเคราะห์ เริ่มจากการคำนวณระยะทางด้วย Euclidian distance map (EDM) และหาจุด Ultimate eroded points (UEPs) ซึ่งเป็นจุดกลางของวัตถุแต่ละกลุ่ม เพื่อใช้เป็นจุดเริ่มต้น หรือจุดที่อยู่ศูนย์กลางที่คาดว่าจะเป็นชุดข้อมูลที่มีความแตกต่างกันออกจากกัน หลังจากได้จุดศูนย์กลางของข้อมูลแล้วก็จะหาพื้นที่รอบจุดศูนย์โดยการขยายขนาดออกไปเรื่อย ๆ จนกว่าไปสัมผันกับกลุ่มข้อมูลชุดอื่น ๆ จุดตำแหน่งที่มีการสัมผัสกัน ก็จะเป็นส่วนที่ใช้ในการแบ่งแยกด้วยการสร้างเส้นแบ่งข้อมูลออกเป็นแต่ละกลุ่ม 

ตรวจสอบการตั้งค่าการทำงานในเมนู Edit->Options->Misc... หลังจากนั้นคำสั่งเกี่ยวกับ Watershed จะสามารถแสดงผลการทำงานของอัลกอแบบแอนิเมชั่นได้
จากตัวอย่าง 
ข้อมูลภาพที่ต้องการแยกส่วน




ผลลัพธ์ที่ได้ หลังจากใช้คำสั่ง Watershed ได้ดังนี้


ภาพผลลัพธ์ที่ได้จากมีเส้นสีขาวขีดแบ่งเพื่อแสดงขอบเขตข้อมูลแต่ละกลุ่ม

ขั้นตอนการทำงานที่ละขั้นตอนแสดงด้วยภาพในวีดีโอดังนี้




แสดงในแบบแผนผังภาพได้ดังตัวอย่างด้านล่าง


โดยไล่ลำดับจากภาพซ้ายบนไปขวา  บนลงล่าง