นี่เป็นกระบวนการง่ายๆ:
- กำหนดการวัดพื้นผิวให้กับแต่ละพื้นที่ในภาพ
- ใช้อัลกอริทึมการทำป้ายกำกับ / การเชื่อมต่อภูมิภาค (หรืออัลกอริทึมการเติบโตของภูมิภาค) เพื่อเข้าร่วมภูมิภาคที่อยู่ติดกันโดยมีการวัดพื้นผิวเดียวกัน
- ใช้อัลกอริทึมต่อไปนี้ที่ใช้ง่าย ๆ เพื่อติดตามรูปร่างของแต่ละภูมิภาค
การวัดพื้นผิวของกฎหมายเป็นเทคนิคที่เก่ากว่า แต่ยังคงมีประโยชน์ในการกำหนดพื้นผิวในภาพและอาจเพียงพอสำหรับคุณที่จะแยกแยะพื้นผิว A จากพื้นผิว B ทั่วทั้งภาพ ดูหัวข้อ "กฎหมายพลังงานพื้นผิวมาตรการ" ในบทความ Wikipedia:
http://en.wikipedia.org/wiki/Image_texture
ในขั้นตอนแรกให้คำนวณการวัดพื้นผิวทั้งหมดและพิจารณาว่าการวัดใดที่เฉพาะเจาะจง (เช่น Edge หรือ Spot) ช่วยให้คุณสามารถแยกความแตกต่างของพื้นผิวหนึ่งจากที่อื่นได้ง่ายที่สุด (หากคุณโพสต์รูปภาพฉันสามารถช่วยคุณระบุการวัดพื้นผิวได้)
หากคุณมีพื้นผิวเพียงสองแบบคือ A และ B คุณสามารถใช้มันเป็นพื้นหน้าและพื้นหลังและอัลกอริทึมการติดฉลากภูมิภาคจะทำงานได้ เพื่อให้ง่ายต่อการดูสิ่งที่เกิดขึ้นในการประมวลผลคุณสามารถสร้างภาพใหม่โดยกำหนด A texels (องค์ประกอบพื้นผิวชิ้นเล็ก ๆ ของพื้นผิว) ให้กับสีขาวและ B texels เป็นสีดำ การติดฉลากภูมิภาคและ / หรืออัลกอริธึมที่ตามมาของรูปร่างจะพบบริเวณสีขาวและดำที่เชื่อมต่ออยู่ ฟังก์ชัน findContours () ใน OpenCV จะทำงานได้ดี
http://en.wikipedia.org/wiki/Connected-component_labeling
บทความ Wikipedia เดียวกันนี้มีทั้งอัลกอริธึมมัลติพาสซีสดั้งเดิมรวมถึงอัลกอริธึมการส่งผ่านเดี่ยว ฉันยังไม่ได้ใช้อัลกอริธึมผ่านรอบเดียวที่อธิบายไว้ที่นั่น แต่ฉันได้ทำงานกับอัลกอริธึมผ่านเดียวที่อธิบายไว้ในกระดาษ "อัลกอริธึมการทำฉลากส่วนประกอบโดยใช้เทคนิค กระดาษของเฉินและช้างยังอธิบายถึงอัลกอริทึมการติดตามเส้นขอบมาตรฐานซึ่งสามารถนำไปใช้ได้อย่างรวดเร็ว
หากคุณมีพื้นผิวมากกว่าสองพื้นผิวคุณอาจใช้สันปันน้ำหรืออัลกอริธึมกะกะเพื่อจัดกลุ่มพื้นที่เข้าด้วยกันหลังจากที่คุณปรับเปลี่ยนพื้นผิวเป็นสีใหม่ แม้ว่าการแมปนี้จากพื้นผิวเป็นสีไม่จำเป็น แต่ก็ทำให้กระบวนการในการดีบักและทำความเข้าใจง่ายขึ้น