Saya membantu klinik hewan mengukur tekanan di bawah kaki anjing. Saya menggunakan Python untuk analisis data saya dan sekarang saya terjebak mencoba untuk membagi cakram menjadi subregional (anatomi).
Saya membuat array 2D dari setiap kaki, yang terdiri dari nilai maksimal untuk setiap sensor yang telah dimuat oleh kaki dari waktu ke waktu. Berikut adalah contoh satu kaki, di mana saya menggunakan Excel untuk menggambar area yang ingin saya 'deteksi'. Ini adalah kotak 2 per 2 di sekitar sensor dengan maxima lokal, yang bersama-sama memiliki jumlah terbesar.
Jadi saya mencoba beberapa percobaan dan memutuskan untuk hanya mencari maksimum setiap kolom dan baris (tidak dapat melihat satu arah karena bentuk paw). Ini tampaknya 'mendeteksi' lokasi jari-jari yang terpisah dengan cukup baik, tetapi juga menandai sensor tetangga.
Jadi apa cara terbaik untuk memberi tahu Python yang mana dari maksimum ini yang saya inginkan?
Catatan: Kotak 2x2 tidak bisa tumpang tindih, karena harus terpisah!
Juga saya menggunakan 2x2 sebagai solusi, ada solusi yang lebih maju, tetapi saya hanya seorang ilmuwan gerakan manusia, jadi saya bukan programmer sejati atau ahli matematika, jadi tolong jaga agar tetap 'sederhana'.
Berikut ini adalah versi yang dapat dimuatnp.loadtxt
Hasil
Jadi saya mencoba solusi @ jextee (lihat hasil di bawah). Seperti yang Anda lihat, ini bekerja sangat baik di kaki depan, tetapi bekerja kurang baik untuk kaki belakang.
Lebih khusus lagi, itu tidak bisa mengenali puncak kecil itu ujung keempat. Ini jelas melekat pada kenyataan bahwa loop terlihat dari atas ke bawah menuju nilai terendah, tanpa memperhitungkan di mana ini.
Adakah yang tahu cara men-tweak algoritma @ jextee, sehingga mungkin bisa menemukan jari ke-4 juga?
Karena saya belum memproses percobaan lain, saya tidak dapat menyediakan sampel lain. Tapi data yang saya berikan sebelumnya adalah rata-rata dari setiap kaki. File ini adalah larik dengan data maksimal 9 kaki sesuai urutan kontak.
Gambar ini menunjukkan bagaimana mereka tersebar secara spasial di atas piring.
Memperbarui:
Saya telah membuat blog untuk siapa saja yang tertarik dan saya sudah menyiapkan SkyDrive dengan semua pengukuran mentah. Jadi bagi siapa pun yang meminta lebih banyak data: lebih banyak kekuatan untuk Anda!
Pembaruan baru:
Jadi setelah bantuan yang saya dapatkan dengan pertanyaan saya tentang deteksi kaki dan penyortiran kaki , saya akhirnya dapat memeriksa deteksi jari kaki untuk setiap kaki! Ternyata, itu tidak bekerja dengan baik dalam apa pun kecuali ukuran kaki seperti yang ada dalam contoh saya sendiri. Tentu saja di belakang, itu salah saya sendiri untuk memilih 2x2 begitu sewenang-wenang.
Ini adalah contoh yang bagus tentang kesalahannya: kuku dikenali sebagai jari kaki dan 'tumit' sangat lebar, sehingga dikenali dua kali!
Kaki terlalu besar, jadi mengambil ukuran 2x2 tanpa tumpang tindih, menyebabkan beberapa jari kaki terdeteksi dua kali. Sebaliknya, pada anjing kecil seringkali gagal menemukan jari kaki ke-5, yang saya duga disebabkan oleh area 2x2 yang terlalu besar.
Setelah mencoba solusi saat ini pada semua pengukuran saya, saya sampai pada kesimpulan mengejutkan bahwa untuk hampir semua anjing kecil saya tidak menemukan jari kaki ke-5 dan bahwa lebih dari 50% dampak untuk anjing besar itu akan menemukan lebih banyak!
Jadi jelas saya perlu mengubahnya. Dugaan saya sendiri adalah mengubah ukuran neighborhood
menjadi sesuatu yang lebih kecil untuk anjing kecil dan lebih besar untuk anjing besar. Tapi generate_binary_structure
saya tidak akan membiarkan saya mengubah ukuran array.
Oleh karena itu, saya berharap ada orang lain yang memiliki saran yang lebih baik untuk menemukan jari kaki, mungkin berskala jari kaki dengan ukuran kaki?