Saya menemukan kontur pada dua gambar dengan objek yang sama dan saya ingin menemukan perpindahan dan rotasi objek ini. Saya sudah mencoba dengan kotak pembatas yang diputar dari kontur ini dan kemudian sudut dan titik tengahnya tetapi pembalikan dari kotak pembatas tidak memberi tahu tentang rotasi kontur dengan benar karena itu sama untuk sudut a + 0, a 90, 180 + 180 dll. derajat. Apakah ada cara lain yang baik untuk menemukan rotasi dan perpindahan kontur? Mungkin beberapa penggunaan lambung cembung, cacat cembung? Saya telah membaca di Belajar OpenCv tentang mencocokkan kontur tetapi tidak membantu. Bisakah seseorang memberi contoh?
Contoh:
Saya ingin mendeteksi misalnya kotak merah muda, dan dalam pena kasus kedua. Contoh lain dapat berupa kotak dengan beberapa lubang, bintang dll. Seperti yang saya katakan saya ingin membuat beberapa hal yang tidak ramah. Setiap saran sangat dihargai karena saya ingin menguji sebanyak mungkin metode.
Jawaban:
Apakah Anda harus khawatir tentang perbedaan skala antara kontur? Jika tidak, Anda dapat dengan mudah menemukan pusat massa dari setiap kontur, dan menghitung perpindahan dengan mengurangi satu dari yang lain. Kemudian Anda dapat menghitung sumbu utama kontur, dan menemukan sudut rotasi di antara mereka.
Jika penskalaan terlibat, maka Anda dapat menghitung faktor skala dengan mengambil rasio sumbu utama yang sesuai.
sumber
Jika Anda tidak perlu khawatir tentang skala atau kode rantai distorsi proyektif dapat membantu di sini. Jika Anda memiliki kode berantai dengan bentuk yang hampir sama dengan skala yang sama, Anda dapat menemukan terjemahan dengan korelasi fase FFT satu dimensi http://en.wikipedia.org/wiki/Phase_correlation
Jika Anda harus mempertimbangkan distorsi proyektif, Anda juga dapat mempertimbangkan kemungkinan menggunakan poin fitur (seperti sudut) daripada kontur.
sumber
Dalam pertanyaan yang Anda katakan
tetapi saya khawatir cukup sulit untuk menemukan solusi "universal" untuk masalah ini.
Anda dapat membeli perangkat lunak pencari pola yang tersedia secara komersial dan mengintegrasikannya dalam aplikasi Anda, biasanya mereka berkinerja cukup baik untuk berbagai aplikasi. Hanya untuk memberi Anda ide ini adalah referensi manual untuk produk semacam itu http://www.lmi3d.com/sites/default/files/support/4.2.0.70-hexsight_user_guide.pdf
Juga, Anda dapat mengembangkan solusi ad hoc untuk beberapa kasus tertentu (misalnya untuk pena di gambar Anda).
Kalau tidak, Anda dapat mempelajari masalah dengan susah payah, mulai dari dasar yang sangat mendasar yang berakar pada geometri komputasi ( http://www.cs.sunysb.edu/~algorith/files/shape-similarity.shtml ), tempat "kontur" Anda dipanggil "poligon", membaca hal-hal seperti:
M. de Berg, O. Devillers, M. Kreveld, O. Schwarzkopf, dan M. Teillaud. Menghitung tumpang tindih maksimum dua poligon cembung di bawah terjemahan. Ilmu Komputer Teoritis, 31: 613–628, 1998.
dan
H. Ahn, O. Cheong, C. Park, C. Shin, dan A. Vigneron. Memaksimalkan tumpang tindih dari dua set planar cembung di bawah gerakan yang kaku.Geometri Komputasi: Teori dan Aplikasi, 37: 3–15, 2007.
dan diakhiri dengan "Pengakuan Real-Time Hierarchical Objects in Images" oleh Markus Ulrich yang bekerja sama dengan MVTec , rumah perangkat lunak lain yang menjual alat perangkat lunak pengenalan objek.
sumber