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 :

Question sur cvCartToPolar()


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 98
    Par défaut Question sur cvCartToPolar()
    Bonjour,

    actuellement j'utilise la bib d'opencv 2.0.

    j'ai calculé le gradient horizontale et verticale d'une image et je veux déterminer l'angle et l'amplitude de ce gradient. Pour cela j'ai utilisé la fonction cvCartToPolar(). une erreur est apparait lors de son exécution.
    Unsupported format or combinaison of format() in function cvcarttopolar.

    déclaration de la fonction dans mon code:
    cvCartToPolar(gradienthorz,gradientvert,magnitude,orientation, 1);

    magnitude, orientation sont de types IPL_DEPTH_32F
    gradienthorz, gradientvert sont de types: IPL_DEPTH_8U

    même je les choisi tous de même types et sa marche pas.

    s'il vous plait qcq peut m'aider.

    Merci d'avance.

  2. #2
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    tu peux nous donner la déclaration des 4 variables ?

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 98
    Par défaut
    Citation Envoyé par snowpy Voir le message
    tu peux nous donner la déclaration des 4 variables ?
    bonjour,

    desolé pour le retard.ci dessous la declaration des variables demandées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IplImage* gradienthorz   = cvCreateImage( cvGetSize( image ), IPL_DEPTH_8U,1);
     
     
     IplImage* gradientvert= cvCreateImage( cvGetSize( image ), PL_DEPTH_8U,1);   
     
    IplImage *magnitude=cvCreateImage(cvGetSize(image),IPL_DEPTH_32F,1);
     
     
    IplImage*orientation=cvCreateImage(cvGetSize(image),IPL_DEPTH_32F,1);
    Merci d'avance

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    le gradient est un vecteur pourquoi les déclarer comme une image ?

    édit: de même pour le reste il ne s'agit pas d'image mais de scalaire.

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 98
    Par défaut
    Citation Envoyé par snowpy Voir le message
    le gradient est un vecteur pourquoi les déclarer comme une image ?

    édit: de même pour le reste il ne s'agit pas d'image mais de scalaire.
    donc vous voulez que je declare le gradient comme un cvmat
    CvMat* gradienthorz = cvCreateMat( n, m, CV_32FC1);

    ou de type tableau. mais sa taille sera de combien.

    de plus la defintion de la fonction est comme suit:
    void cvCartToPolar(const CvArr* x,const CvArr* y,CvArr* magnitude,
    CvArr* angle = NULL,int angle_in_degrees = 0
    );

    CvArr normalement sa peut être une image Non?

    le gradient (horizontale et verticale) je les affichers et il ma donné une image des contours.

    donc comme je peux le changer pour que le format sera supporté par la fonction cvcarttopolar()?

    Merci d'avance.

  6. #6
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    je pense qu'il considère l'image comme une matrice géante, oui const Cvarr* peut ê un peu n'importe quoi, je dirais que l'erreur vient de la :
    CV_8UC1 means an 8-bit unsigned single-channel matrix, CV_32FC2 means a 32-bit float matrix with two channels.
    Les deux images ne sont pas au même format, je mettrais l'angle et l'amplitude sous 8 bit

Discussions similaires

  1. [debutant] Questions sur 1 futur projet
    Par cyrull22 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 28/04/2003, 21h49
  2. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23
  3. Question sur les handles et les couleurs...
    Par MrDuChnok dans le forum C++Builder
    Réponses: 7
    Dernier message: 29/10/2002, 08h45
  4. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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