IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Image noire (toutes les valeurs à 0) après un CornerHarris


Sujet :

OpenCV

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Image noire (toutes les valeurs à 0) après un CornerHarris
    Bonjour à tous,

    Après m'être très souvent aidée de ce forum sans intervenir, je viens aujourd'hui vous demander de l'aide!

    Voila, j'applique un détecteur de Harris à une image (image dans un format propre à ma boite, que j'ai donc transformée en cv::mat)
    Une fois le CornerHarris appliqué, je ne peux pas voir mon image... j'ai une fenetre grise qui devient noire après 1 sec (du au waitKey(1))

    Juste pour info, lorsque je fais un cv::imshow de mon image imageCvBRG ou imageCvGray, cela marche. Donc c'est vraiment le fait d'appliquer cornerHarris qui fait que ça ne fonctionne plus...

    Voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    void MaFonction::harrisDetectorByCv(const CRGBAFloatImage& i_image){
     
    		cv::Mat imageCvBRG= i_image.toCV();
    		cv::Mat imageCvGray(imageCvBRG.rows,imageCvBRG.cols,1);
    		cv::cvtColor(imageCvBRG,imageCvGray,CV_RGB2GRAY) ;
     
    		cv::Mat harrisImage;
                    cv::cornerHarris(imageCvGray,harrisImage,7,3,0.04,cv::BORDER_DEFAULT);
     
    		cv::waitKey(1);
    		cv::imshow("harris", harrisImage);
    Si quelqu'un peut me dépanner ce serait vraiment sympa!
    Merci d'avance.

    [EDIT] Donc le problème ne vient pas de l'affichage, mais vraiment de l'image finale, qui n'est fait que de valeurs très proches de 0 (en 10^-8 par exemple)

  2. #2
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    Salut!

    Je n'ai pas essayé ton bout de code mais voici quelques trucs que tu pourrais essayer :
    -le cvWaitKey, met le après l'affichage de l'image, et pas avec 1 en paramètre ( c'est en millisecondes donc tu n'as pas le temps de voir grand chose). Essaye avec 0, comme ça le programme fera une pause juste après l'affichage de l'image et tu pourras la voir aussi longtemps que tu veux!
    -si elle est correcte, bin ça va , sinon essaye d'afficher quelques valeurs de l'image pour voir si elles sont cohérentes.

    En espérant que ça t'aidera.
    A+

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Valeurs à 0 après un HarrisCorner
    Merci de ta réponse,

    Le waitKey ne change malheureusement rien!
    Par contre j'ai affiché le résultat, et effectivement toutes les valeurs sont quasiment à 0, d'où mon image toute noire!

    Du coup, quelqu'un à déjà eu ce problème (avoir des valeurs à 0 après un harris corner d'openCV) ?

    Merci encore!


  4. #4
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 18
    Points : 19
    Points
    19
    Par défaut
    J'ai écrit un bout de code pour voir ce que j'obtenais, et j'ai aussi une image noire. J'ai affiché les valeurs et elles sont soit nulles, soit de l'ordre de 10^-6, donc en effet, c'est normal que l'image apparaisse noire. Après, il doit surement y avoir quelques fonctions à appliquer pour avoir un résultat plus lisible, comme c'est dit ici :
    http://opencv.willowgarage.com/docum...detection.html

    Il est précisé : "Corners in the image can be found as the local maxima of the destination image."

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/08/2006, 15h11
  2. Lire toutes les valeurs d'une clé
    Par winow dans le forum C++Builder
    Réponses: 3
    Dernier message: 03/02/2006, 18h51
  3. récupérer toutes les valeurs choisies ds un select multiple
    Par toome dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 24/10/2005, 13h45
  4. Requete SELECT : prendre toutes les valeurs pour 1 champ
    Par fab22montpellier dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/09/2005, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo