ฉันกำลังช่วยคลินิกสัตวแพทย์ในการวัดความดันภายใต้อุ้งเท้าสุนัข ฉันใช้ Python สำหรับการวิเคราะห์ข้อมูลของฉันและตอนนี้ฉันกำลังพยายามแบ่งอุ้งเท้าออกเป็นส่วนย่อย (กายวิภาค)
ฉันสร้างอาร์เรย์สองมิติของอุ้งเท้าแต่ละตัวซึ่งประกอบด้วยค่าสูงสุดสำหรับเซ็นเซอร์แต่ละตัวที่อุ้งมือเมื่อเวลาผ่านไป นี่คือตัวอย่างของอุ้งเท้าหนึ่งซึ่งฉันใช้ Excel เพื่อวาดพื้นที่ที่ฉันต้องการ 'ตรวจสอบ' กล่องเหล่านี้มีขนาด 2 x 2 รอบเซ็นเซอร์พร้อม maxima ท้องถิ่นซึ่งมีขนาดใหญ่ที่สุด
ดังนั้นฉันจึงลองทำการทดลองและตัดสินใจที่จะมองหาค่าสูงสุดของแต่ละคอลัมน์และแถว (ไม่สามารถมองในทิศทางเดียวเนื่องจากรูปร่างของอุ้งเท้า) ดูเหมือนว่า 'ตรวจจับ' ตำแหน่งของนิ้วเท้าแยกจากกันค่อนข้างดี แต่มันก็ทำเครื่องหมายเซ็นเซอร์ที่อยู่ใกล้เคียง
ดังนั้นจะเป็นวิธีที่ดีที่สุดในการบอก Python ว่าค่าสูงสุดเหล่านี้คือสิ่งที่ฉันต้องการหรือไม่
หมายเหตุ: สี่เหลี่ยม 2x2 ไม่สามารถซ้อนทับกันได้เนื่องจากจะต้องแยกนิ้วเท้าออก!
นอกจากนี้ฉันยังใช้ 2x2 เพื่ออำนวยความสะดวกอีกทั้งยังยินดีต้อนรับวิธีแก้ปัญหาขั้นสูงอีกด้วย แต่ฉันเป็นเพียงนักวิทยาศาสตร์การเคลื่อนไหวของมนุษย์ดังนั้นฉันจึงไม่ใช่โปรแกรมเมอร์หรือนักคณิตศาสตร์ที่แท้จริงดังนั้นโปรดทำให้มันง่าย
นี่คือรุ่นที่สามารถโหลดได้np.loadtxt
ผล
ดังนั้นฉันจึงลองวิธีแก้ปัญหาของ @ jextee (ดูผลลัพธ์ด้านล่าง) อย่างที่คุณเห็นมันทำงานได้ดีบนอุ้งเท้าหน้า แต่มันทำงานได้ไม่ดีนักสำหรับขาหลัง
โดยเฉพาะอย่างยิ่งมันไม่สามารถจดจำจุดสูงสุดเล็ก ๆ นั่นคือนิ้วเท้าที่สี่ เห็นได้ชัดว่านี่เป็นสิ่งที่เกิดขึ้นจริงจากการที่ลูปดูจากบนลงล่างถึงค่าต่ำสุดโดยไม่คำนึงถึงว่ามันอยู่ที่ไหน
มีใครบ้างที่รู้วิธีปรับแต่งอัลกอริทึมของ @ jextee เพื่อที่จะสามารถหานิ้วเท้าที่ 4 ด้วย
เนื่องจากฉันยังไม่ได้ประมวลผลการทดลองอื่นฉันจึงไม่สามารถจัดหาตัวอย่างอื่นได้ แต่ข้อมูลที่ฉันให้ไว้ก่อนหน้านี้คือค่าเฉลี่ยของอุ้งเท้าแต่ละตัว ไฟล์นี้เป็นอาร์เรย์ที่มีข้อมูลมากที่สุดคือ 9 paws ตามลำดับที่พวกเขาทำการติดต่อกับ plate
ภาพนี้แสดงให้เห็นว่าพวกมันกระจายไปทั่วจานอย่างไร
ปรับปรุง:
ฉันได้ตั้งค่าบล็อกสำหรับทุกคนที่สนใจและฉันได้ติดตั้ง SkyDrive ด้วยการวัดแบบดิบทั้งหมด ดังนั้นสำหรับทุกคนที่ขอข้อมูลเพิ่มเติม: มีพลังมากขึ้นสำหรับคุณ!
อัพเดทใหม่:
ดังนั้นหลังจากที่ฉันได้รับคำถามเกี่ยวกับการตรวจจับอุ้งเท้าและการเรียงอุ้งเท้าในที่สุดฉันก็สามารถตรวจจับนิ้วเท้าทุกอุ้งเท้าได้! กลับกลายเป็นว่ามันทำงานได้ไม่ดีนักในทุกอย่างยกเว้นอุ้งเท้าขนาดเท่าตัวอย่างของฉันเอง ในการเข้าใจถึงปัญหาหลังเหตุการณ์มันเป็นความผิดของตัวเองในการเลือก 2x2 โดยพลการ
นี่เป็นตัวอย่างที่ดีว่าเกิดอะไรขึ้น: เล็บได้รับการยอมรับว่าเป็นนิ้วเท้าและ 'ส้นเท้า' กว้างมากจนได้รับการยอมรับสองครั้ง!
อุ้งเท้าใหญ่เกินไปดังนั้นการยึดขนาด 2x2 โดยไม่มีการเหลื่อมกันทำให้นิ้วเท้าบางคู่ถูกตรวจจับสองครั้ง อีกวิธีหนึ่งในสุนัขตัวเล็ก ๆ มักจะล้มเหลวในการหานิ้วเท้าที่ 5 ซึ่งฉันสงสัยว่าเกิดจากพื้นที่ 2x2 มีขนาดใหญ่เกินไป
หลังจากลองใช้วิธีแก้ปัญหาในปัจจุบันกับการวัดทั้งหมดของฉันฉันได้ข้อสรุปที่ส่ายว่าสำหรับสุนัขตัวเล็กเกือบทั้งหมดของฉันมันไม่พบที่นิ้วเท้าที่ 5 และในกว่า 50% ของผลกระทบสำหรับสุนัขขนาดใหญ่
เห็นได้ชัดว่าฉันต้องเปลี่ยน ฉันคิดว่าตัวเองกำลังเปลี่ยนขนาดของneighborhood
สิ่งที่เล็กกว่าสำหรับสุนัขตัวเล็กและใหญ่กว่าสำหรับสุนัขตัวใหญ่ แต่generate_binary_structure
จะไม่ให้ฉันเปลี่ยนขนาดของอาเรย์
ดังนั้นฉันหวังว่าคนอื่นจะมีข้อเสนอแนะที่ดีกว่าสำหรับการค้นหานิ้วเท้าอาจมีขนาดพื้นที่นิ้วเท้าที่มีขนาดอุ้งเท้า?