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

Python Discussion :

opencv avec python


Sujet :

Python

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Par défaut opencv avec python
    Bonjour a tous,
    Je suis élève en première année a l'ECP, je mène actuellement un projet pour détection d'objets et mon tuteur m'a indiqué la bibliothèque OpenCV. Le problème c'est que je ne connais que le langage Python pour programmer. Pourriez-vous m'indiquer le soft a utiliser et comment l'utiliser avec python car je ne trouve que des tutoriels en anglais (je ne m'y connais pas très bien en anglais )
    merci d'avance

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Salut,


    Opencv est utilisable directement en Python.

    La doc:

    http://opencv.willowgarage.com/docum...hon/index.html

    bien sur c'est en anglais, mais, si tu veux utiliser des librairies de haut niveau, il faudra passer par là et Opencv est de haut niveau.

    Je ne sais pas sur quel OS tu comptes l'utiliser, sous linux, Opencv s'installe avec une série d'exemples bien utiles pour faire connaissance avec les possibilités de la librairie.

    /usr/share/doc/opencv-doc/examples/python
    /usr/share/doc/opencv-doc/examples/python/cam-histo.py
    /usr/share/doc/opencv-doc/examples/python/capture-cam.py
    /usr/share/doc/opencv-doc/examples/python/chessboard.py
    /usr/share/doc/opencv-doc/examples/python/contours.py
    ...
    Toutefois, je préciserai que l'utilistion d'Opencv requiert quelques connaissances des algorithmes de traitement d'image, il y a, donc, bien souvent un second aprentissage en plus d'Opencv.

    D'autant plus passionnant, j'ajouterai.

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bonjour,
    cette bibliothèque a l'air très sympathique.

    Connaissez-vous des exemples "simples" d'utilisation ou juste des exemples frappants ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 304
    Par défaut
    Commeexemple simple il y a ceci :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
     
    #!/usr/bin/python
     
    import sys
     
    from opencv.cv import *
    from opencv.highgui import *
     
     
    _brightness = 100
    _contrast = 100
    Gbrightness = 100
    Gcontrast = 100
     
    hist_size = 64
    range_0=[0,256]
    ranges = [ range_0 ]
    src_image=None
    dst_image=None
    hist_image=None
    hist=None
    lut=cvCreateMat(256,1,CV_8U)
     
    # brightness/contrast callback function
    def update_brightness( val ):
        global Gbrightness    # global tag is required, or we get UnboundLocalError
        Gbrightness = val
        update_brightcont( )
     
    def update_contrast( val ):
        global Gcontrast     # global tag is required, or we get UnboundLocalError
        Gcontrast = val
        update_brightcont( )
     
    def update_brightcont():
        # no global tag required for images ???
     
        brightness = Gbrightness - 100;
        contrast = Gcontrast - 100;
        max_value = 0;
     
         # The algorithm is by Werner D. Streidt
         # (http://visca.com/ffactory/archives/5-99/msg00021.html)
        if( contrast > 0 ):
            delta = 127.*contrast/100;
            a = 255./(255. - delta*2);
            b = a*(brightness - delta);
        else:
            delta = -128.*contrast/100;
            a = (256.-delta*2)/255.;
            b = a*brightness + delta;
     
        for i in range(256):
            v = cvRound(a*i + b);
            if( v < 0 ):
                v = 0;
            if( v > 255 ):
                v = 255;
            lut[i] = v;
     
        cvLUT( src_image, dst_image, lut );
        cvShowImage( "image", dst_image );
     
        cvCalcHist( dst_image, hist, 0, None );
        cvZero( dst_image );
        min_value, max_value, x, y = cvGetMinMaxHistValue( hist )
        cvScale( hist.bins, hist.bins, float(hist_image.height)/max_value, 0 );
        #cvNormalizeHist( hist, 1000 );
     
        cvSet( hist_image, cvScalarAll(255));
        bin_w = cvRound(float(hist_image.width)/hist_size);
     
        for i in range(hist_size):
            cvRectangle( hist_image, cvPoint(i*bin_w, hist_image.height),
                         cvPoint((i+1)*bin_w, hist_image.height - cvRound(cvGetReal1D(hist.bins,i))),
                         cvScalarAll(0), -1, 8, 0 );
     
        cvShowImage( "histogram", hist_image );
     
     
    if __name__ == "__main__":
        # Load the source image. HighGUI use.
        if len(sys.argv)>1:
            file_name = sys.argv[1]
     
        src_image = cvLoadImage( file_name, 0 )
     
        if not src_image:
            print "Image was not loaded."
            sys.exit(-1)
     
     
        dst_image = cvCloneImage(src_image)
        hist_image = cvCreateImage(cvSize(320,200), 8, 1)
        hist = cvCreateHist([hist_size], CV_HIST_ARRAY, ranges, 1)
     
        cvNamedWindow("image", 0)
        cvNamedWindow("histogram", 0)
     
        cvCreateTrackbar("brightness", "image", _brightness, 200, update_brightness)
        cvCreateTrackbar("contrast", "image", _contrast, 200, update_contrast)
     
        update_brightcont()
        cvWaitKey(0)
    Notes :

    Les imports depuis opencv ou cv tout court doivent être adaptés selon l'OS.
    Les point-virgules terminant les lignes n'ont pas de raisons d'être.
    J'ai modifié la ligne : min_value, max_value, x, y = cvGetMinMaxHistValue( hist )
    qui buggait.

    Lancez le script avec une image en argument, et déplacez l'histogramme qui apparaît, il y a une deuxième fenêtre cachée en dessous.

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Décembre 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 2
    Par défaut
    merci pour vos reponses
    ces derniers jours j'ai appris c++ , vous pensez que c'est plus avantageux de l'utiliser au lieu de python (quoique j'adore python )

    Je voulais aussi tous vous dire merci pour les Cours et tutoriels pour apprendre Python , mon préféré : Apprendre à programmer avec Python 3 par Gérard Swinnen

  6. #6
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Merci VinsS pour l'exemple.

Discussions similaires

  1. Reconnaissance faciale (OpenCv?) avec Python 3.4
    Par an10fp11 dans le forum Bibliothèques tierces
    Réponses: 7
    Dernier message: 30/06/2014, 07h47
  2. traitement d'image: segmentation avec opencv dans python
    Par Bimboucha dans le forum Bibliothèques tierces
    Réponses: 25
    Dernier message: 09/04/2014, 15h14
  3. création de base mySQL avec python
    Par preacher_man dans le forum Bibliothèques tierces
    Réponses: 7
    Dernier message: 23/06/2006, 19h38
  4. Réponses: 2
    Dernier message: 19/12/2005, 13h15
  5. Les 128 derniers bits d'un fichier en ligne avec Python ?
    Par ecocentric dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 26/09/2005, 12h40

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