Deskriptor SIFT untuk piksel sudut pada gambar

Saya ingin membuat fungsi untuk menghitung deskriptor saringan yang mengambil dua argumen sebagai masukan, satu adalah gambar dan kedua adalah vektor titik-titik tertentu pada gambar. Outputnya akan berupa baris-baris deskriptor saringan 128 dimensi dengan setiap baris sesuai dengan deskriptor titik tertentu pada gambar. Untuk penghitungan deskriptor SIFT, seseorang perlu memotong patch tertentu di sekitar titik kunci (katakanlah 32 x 32) dan melakukan beberapa hal pemrosesan gambar (histogram orientasi dan semuanya). Pertanyaan saya di sini adalah bagaimana menangani piksel sudut pada gambar. misalnya jika saya akan memberikan lokasi piksel (1,1) sebagai masukan ke fungsi, lalu bagaimana cara memotong tambalan atau bagaimana cara menghitung deskriptor untuk lokasi tersebut pada gambar??


person vijay    schedule 05.08.2015    source sumber
comment
Anda dapat membuat batas di sekitar gambar Anda sebesar 32 piksel, mencerminkan gambar aslinya. Jadi, sudut Anda pun akan memiliki persegi panjang 32x32 yang valid. Di OpenCV Anda akan melakukannya dengan copyMakeBorder dan BORDER_REFLECT_101.   -  person Miki    schedule 05.08.2015
comment
bukankah itu akan mempengaruhi kinerja deskriptor??   -  person vijay    schedule 06.08.2015
comment
Ya, tentu saja. Itu sebabnya Anda tidak boleh menghitung saringan di dekat batas.   -  person Miki    schedule 06.08.2015
comment
Pada dasarnya, seperti yang ditunjukkan oleh @Miki, fitur dalam piksel gambar dihitung dalam lingkungan radius r. Semakin besar r (tergantung fiturnya), semakin besar jumlah piksel yang kehilangan informasi dalam gambar. Sebagai contoh, untuk r = 5, pita 5 piksel di sekitar batas gambar akan kehilangan informasi saat menghitung fitur. Untuk menyelesaikan ini ada kondisi batas, Anda dapat mencerminkan, mengatur ke 0 atau membungkus gambar diluar batasnya, namun hasilnya tetap sama, hilangnya informasi. Oleh karena itu, jangan terlalu mengandalkan fitur-fitur di dekat batas.   -  person Imanol Luengo    schedule 07.08.2015
comment
Lihat jawaban lain ini: stackoverflow.com/questions/5715220/   -  person Imanol Luengo    schedule 07.08.2015
comment
Hmmm oke... Terima kasih :)   -  person vijay    schedule 08.08.2015


Jawaban (1)


Seperti yang ditunjukkan orang lain di komentar, dalam pemrosesan gambar, merupakan praktik umum untuk mencerminkan gambar pada batas, atau terkadang, Anda juga dapat memberi angka nol pada batas.

Jika "vektor titik tertentu" yang Anda maksud adalah "titik kunci", Anda dapat menggunakan opencv untuk mengekstrak fitur SIFT, yang mengembalikan vektor fitur 128 dimensi untuk setiap titik kunci.

Anda tidak perlu melakukan sendiri penghitungan deskriptor SIFT secara eksplisit, karena OPENCV menyediakan metode seperti yang dijelaskan dalam Deskriptor SIFT

person kmario23    schedule 30.10.2016