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 :

Problème avec FitEllipse2


Sujet :

OpenCV

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 16
    Par défaut Problème avec FitEllipse2
    Bonjour,

    Je débute sous opencv et je comprends mal les structures de données. En fait je dispose d'une image 8 bits avec des une distribution elliptique de pixels.
    J'utilise cv.LoadImage pour charger l'image.
    Mais comment récupérer une matrice des pixels de cette image pour pouvoir fitter avec cvFitEllipse2(const CvArr* points). Si j'utilise cv.GetMat(im) j'obtiens l'erreur "The matrix can not be converted to point sequence because of inappropriate element type" quand je veux fitter et si je laisse sous forme d'iplimage j'obtiens" Input array is not a valid matrix".

    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
    Bonjour

    tu dois lui passer un tableau de point 2D.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 16
    Par défaut
    Merci snowpy,

    Daccord mais comment procéder pour avoir un tableau de points 2D à partir de mon image?

  4. #4
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    tu cherche à faire quoi ? cvfitellipse te retourne l'ellipse contenu dans un ensemble de point.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 16
    Par défaut
    Et bien je dispose de l'image suivante :
    http://imageshack.us/photo/my-images/12/hough.png
    et aimerai fitter la distribution des points par une ellipse. Seulement je ne sais pas comment extraire les données de l'image sous forme de tableau de points 2D pour ensuite les faire fitter par avec fitellipse.

  6. #6
    Membre chevronné
    Inscrit en
    Mars 2010
    Messages
    439
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 439
    Par défaut
    Tu veux automatiser le traitement, ou ton image sera toujours la même ? (dsl je ne peux pas visualiser ton image, certains sites sont filtrés au boulo ^^)

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2005
    Messages : 67
    Par défaut
    Bonjour,

    Avec OpenCV 2.1, on peut faire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    #include <vector>
    #include <cv.h>
    #include <highgui.h>
     
    using namespace cv;
     
     
    int main(int argc, char *argv[])
    {
    	Mat img = imread("hough.png");
    	Mat gray;
    	cvtColor(img,gray,CV_BGR2GRAY);
    	vector<Point> pts;
    	for( int y = 0; y < gray.rows; y++ )
    	{
    		uchar* ptr = gray.ptr<uchar>(y);
    		for( int x = 0; x < gray.cols; x++ )
    			if (ptr[x] == 0) pts.push_back(Point(x,y));
    	}
    	RotatedRect rec = fitEllipse(Mat(pts));
    	ellipse(img,rec,CV_RGB(255,0,0),2);
    	cvNamedWindow("image", CV_WINDOW_AUTOSIZE);
    	imshow("image",img);
    	waitKey();
    	return 0;
    }
    Cordialement

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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