Hai CV / Komunitas Pengakuan Pola,
Saya punya masalah serius mengenai segmentasi gambar. Skenarionya adalah suasana di dalam tungku yang membuat kepalaku menjadi gila. Dan saya perlu mendeteksi kontur benda dari berbagai bahan (gelas, keramik, Al, Ir, ..) dalam waktu singkat (<10 detik) dan bukan hanya untuk satu kasing khusus. Saya juga memerlukan kontur dalam deretan piksel berurutan untuk kode. Oleh karena itu diperlukan kode rantai atau yang disebut border / contour, sehingga lubang terbuka tidak bagus. Di latar belakang adalah suara non linear, kira-kira debu, partikel atau yang lainnya, yang muncul dari waktu ke waktu.
Saran Matlab atau OpenCV dipersilakan.
Untuk membuatnya lebih jelas, saya telah memposting gambar lain dari tujuan saya dan objek setengah transparan, yang juga perlu dideteksi. Juga contoh lebih lanjut yang perlu diperhatikan.
Seperti yang dapat Anda lihat di Gambar # 1, ada partikel di bagian kanan gambar dan dekat kontur luar bintang, yang merupakan objek. Kontras secara keseluruhan juga tidak terlalu bagus. Objek itu sendiri berdiri di bawah tanah, yang tidak relevan untuk deteksi kontur. Gambar # 2 menunjukkan objek halftransparan, yang juga dimungkinkan.
Saya ingin mencari kontur / keliling objek itu, seperti pada layar berikutnya (garis merah). Dua persegi panjang (kuning) menandai awal (kiri) dan titik akhir (kanan). Garis biru tidak dapat diabaikan.
Pada awalnya saya berpikir bahwa saya bisa menyelesaikan masalah atmosfer kotor hanya dengan filter. Tetapi setelah sejumlah waktu investasi yang terhormat, saya baru sadar, bahwa saya harus menghilangkan atau mengurangi suara secara signifikan untuk meningkatkan kontras latar depan dan latar belakang. Saya sudah mencoba banyak metode, seperti ekualisasi histogram, ekualisasi adaptif Otsu, filter linear (mis. Gauss), filter nonlinier (median, difusi), Kontur Aktif, k-Means, Fuzzy-c-means dan juga Canny untuk murni Deteksi Tepi dalam kombinasi dengan operator morfologi.
- Canny: Partikel-partikel dan atmosfir menyebabkan lubang, tetapi saya membutuhkan kontur objek yang lengkap. Masih dengan penutupan, dilatasi operator morfologi tidak cukup baik. Canny masih memiliki hasil terbaik dari semua metode yang telah saya pelajari karena histeresis.
- Kontur Aktif: Mereka bekerja pada tepi / gradien juga, mereka bertindak benar-benar gila setelah menginisialisasi di dalam objek, yang mungkin disebabkan oleh peta tepi yang menghasilkan objek 'terbuka'. Sejauh yang saya tahu kontur harus ditutup. Mencobanya dengan turunan yang berbeda (GVF / VFC / Classic Snake).
- k-Means: Hasil termasuk suasana tungku, karena latar belakang berkabut. Sama untuk fuzzy-c-means. Saya memilih dua kelompok, karena memisahkan objek dari latar belakang. Lebih banyak kelompok mengarah pada hasil yang lebih lemah.
- Histogram / Otsu: Karena intensitas abu-abu yang sangat dekat (imho!), Itu menggabungkan objek dengan latar belakang. Mencobanya dengan metode lokal dan global.
- Filter: Terutama GLPF atau LPF lainnya mengolesi tepi, yang tidak begitu baik dan bahkan tidak mengurangi atmosfer berkabut.
- Filter Non-Linier menjaga ujung-ujungnya. Kebanyakan dari mereka terlalu lama untuk menghitung gambar besar. Mengambil filter bilateral cepat untuk saat ini. Hasilnya lihat di bawah.
Oleh karena itu, tidak ada metode tunggal yang cukup baik untuk langkah-langkah pasca-pemrosesan, karena hasil yang diperoleh dari segmen objek miskin bersaing dengan algoritma yang ada. Algoritma yang ada sangat lokal dan karenanya bekerja untuk skenario yang sangat khusus ini.
Jadi saya bertanya kepada Anda, jika saya telah melewatkan sesuatu sepenuhnya ... Saya tidak memiliki ide lebih lanjut bagaimana memproses dan bagaimana saya harus mendapatkan hasil kontur yang baik, tanpa memiliki celah atau lubang .. Apakah mungkin tanpa membuat banyak perubahan pada CCD dan lingkungan fisik? Terima kasih sebelumnya!
Pendekatan Terakhir sejauh ini (setelah malam panjang bereksperimen dengan MO):
- Filter Bilateral (pengawetan tepi, tetapi menghaluskan area homogen)
- Canny (Sigma = 2, Threshold = [0,04 0,08])
- Morfologi Operasi (MO):
bwareopen
,closing
,remove
&bridge
bwlabel
untuk memilih hanya perimeter kontur, yang menghilangkan suara yang tidak diinginkan. belum ada tangkapan layar yang diperbarui, tetapi berfungsi untuk bintang. kaca mendapat kontur dalam yang terhubung ke kontur outter, yang juga dapat dilihat pada screenshot di bawah ini.
Jadi saya takut bahwa saya memerlukan algoritma khusus untuk traversal kontur outter. Ini akan menjadi beberapa pencarian lingkungan searah / berlawanan arah jarum jam. Langkah searah jarum jam / berlawanan arah jarum jam dapat beralih, jika ada titik sudut. jika ada celah, tambah jari-jari dan lihat lagi. jika ada dua atau lebih poin berikut yang mungkin, ambil orang yang mendapat arah yang sama seperti sebelumnya. Menurut Anda, apakah algoritma mengikuti kontur ini masuk akal?