ค้นหาจุดบนภาพ

Oct 07 2020

ใครมีความคิดเกี่ยวกับวิธีตรวจจับจุดกึ่งกลางของภาพประเภทนี้ จุดที่นี่มีคอนทราสต์สีดำและสีขาว (หรือขาวและดำ) และเกือบจะสัมผัสกัน ทำให้ยากต่อการใช้ ComponentMeasurements เหมือนอย่างที่เคยทำ ขอบคุณสำหรับความช่วยเหลือของคุณ Daniel

คำตอบ

1 bobthechemist Oct 07 2020 at 23:13

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

i = Import@"https://i.stack.imgur.com/9RP53.png"
ij = ImportString[ExportString[i, "jpg"], "jpg"];
if = PeronaMalikFilter[ij,10];
data = ClusteringComponents[ColorQuantize[if, 16], 3];
ip = DeleteSmallComponents[
  Colorize[idata, ColorRules -> {1 -> Black, 2 -> Black, 3 -> Red}], 
  50]
ComponentMeasurements[ip, "Area"] //Length

พบวัตถุ 163 ชิ้น