2015-08-05 1 views
1

Je veux faire une fonction pour calculer les descripteurs de crible qui prennent deux arguments en entrée, l'un est l'image et le second dans le vecteur de certains points de l'image. La sortie serait les rangées de 128 descripteurs de criblage de dimension avec chaque ligne correspondant à un descripteur de certain point dans l'image. Pour les calculs des descripteurs SIFT, il est nécessaire de recadrer certains points autour du point-clé (disons 32 x 32) et de faire un peu de traitement d'image (histogramme des orientations et tout). Ma question ici est de savoir comment traiter les pixels de coin dans l'image. par exemple si je vais donner l'emplacement de pixel (1,1) comme entrée à la fonction, puis comment recadrer le patch ou comment faire le calcul pour le descripteur pour un tel emplacement dans l'image ??Descripteur SIFT pour les pixels de coin dans l'image

+1

vous pouvez créer une bordure autour de l'image de 32 pixels, à l'image de l'image originale. Donc même vos coins auront un rectangle de 32x32 valide. Dans OpenCV, vous le feriez avec [copyMakeBorder] (http://docs.opencv.org/modules/imgproc/doc/filtering.html#copymakeborder) et 'BORDER_REFLECT_101'. – Miki

+0

cela ne affecterait-il pas la performance du descripteur ?? – vijay

+1

Oui, bien sûr. C'est pourquoi vous ne devriez pas calculer sift près des limites. – Miki

Répondre

1

Comme d'autres ont souligné dans les commentaires, dans le traitement de l'image, il est une pratique courante pour refléter l'image au niveau des limites, ou parfois, vous pouvez aussi zéros pad aux limites. Si le «vecteur de certains points» auquel vous faites référence sont les «points-clés», vous pouvez utiliser opencv pour extraire les entités SIFT, ce qui renvoie 128 vecteurs de caractéristiques dimensionnelles pour chaque point-clé.

Vous ne devez pas faire le calcul de descripteurs SIFT vous explicitement, car OPENCV fournit des méthodes pour que décrit dans SIFT descriptors