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

Images Discussion :

reconnaissance des plaques d'immatriculation


Sujet :

Images

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Responsable des études
    Inscrit en
    Septembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable des études

    Informations forums :
    Inscription : Septembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut reconnaissance des plaques d'immatriculation
    Bonjour
    je suis entrain d'élaborer mon pfe intitulé " parking dépose minute avec reconnaissance des plaques d'immatriculation "
    j'ai pu aboutir le résultat qui est la plaque d'immatriculation à partir d'une image de véhicule capturée par un caméra IP suite à un prog MATLAB .
    mon probléme est au niveau le code de segmentation de la plaque.
    j'ai traité ce code suivant mais pas de résultat.
    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
    clc;
    close all;
    clear all;
    %.................................
    f=imread('55.jpg');
    f=imresize(f,[400 NaN]);       %%Redimensionnez l'image pour l'agrandir
    imshow(f);
    g=rgb2gray(f); %convertir l'image en gris
    g=medfilt2(g,[3 3]); %Utilisez un filtre médian pour filtrer le bruit.
    %**********************************
    conc=strel('disk',1); %crée un élément structurant en forme de disque, où R=1 spécifie la distance entre l'origine de l'élément structurant et les points du disque.
    gi=imdilate(g,conc); %dilate l'image binaire en niveaux de gris,
    ge=imerode(g,conc);            %%%% morphological image processing
    gdiff=imsubtract(gi,ge); %Soustrayez une constante vSubtrez le fond de l'image
    gdiff=mat2gray(gdiff); %Convertissez la matrice en une image par filtre sobel
    gdiff=conv2(gdiff,[1 1;1 1]);
    gdiff=imadjust(gdiff,[0.5 0.7],[0 1],.1);
    B=logical(gdiff);
    [a1 b1]=size(B);
    figure(2)
    imshow(B)
    er=imerode(B,strel('line',100,0));
    figure(3)
    imshow(er)
    out1=imsubtract(B,er);
    F=imfill(out1,'holes');      %%%filling the object
    H=bwmorph(F,'thin',1);
    H=imerode(H,strel('line',3,90));
    figure(4)
    imshow(H)
    %%
    final=bwareaopen(H,floor((a1/15)*(b1/15)));  
    final(1:floor(.9*a1),1:2)=1;
    final(a1:-1:(a1-20),b1:-1:(b1-2))=1;
    %yyy=template(2);
    figure(5)
    imshow(final)
    Iprops=regionprops(final,'BoundingBox','Image');
    hold on
    for n=1:size(Iprops,1)
        rectangle('Position',Iprops(n).BoundingBox,'EdgeColor','g','LineWidth',2); 
    end
    hold off
    NR=cat(1,Iprops.BoundingBox);   %%Data storage section
    [r,ttb]=convn(NR,shape);
    if ~isempty(r)
    xlow=floor(min(reshape(ttb(:,1),1,[])));
    xhigh=ceil(max(reshape(ttb(:,1),1,[])));
    xadd=ceil(ttb(size(ttb,1),3));
    ylow=floor(min(reshape(ttb(:,2),1,[])));    %%%%%area selection
    yadd=ceil(max(reshape(ttb(:,4),1,[])));
        final1=H(ylow:(ylow+yadd+(floor(max(reshape(ttb(:,2),1,[])))-ylow)),xlow:(xhigh+xadd));
        [a2 b2]=size(final1);
        final1=bwareaopen(final1,floor((a2/20)*(b2/20)));
        figure(6)
    imshow(final1)
     
     
        Iprops1=regionprops(final1,'BoundingBox','Image');
        NR3=cat(1,Iprops1.BoundingBox);
        I1={Iprops1.Image};
     
        %%
    carnum=[];
    if (size(NR3,1)>size(ttb,1))
            [r2 to]=connn2(NR3);
     
    for i=1:size(Iprops1,1)
     
    ff=find(i==r2);
    if ~isempty(ff)
                    N1=I1{1,i};
                    letter=readLetter(N1,2);
    else
                    N1=I1{1,i};
                    letter=readLetter(N1,1);
    end
    if ~isempty(letter)
    carnum=[carnum letter];
    end
    end
    else
    for i=1:size(Iprops1,1)
                N1=I1{1,i};
                letter=readLetter(N1,1);
    carnum=[carnum letter];
    end
    end
        %%
     
        fid1 = fopen('carnum.txt', 'wt');
    fprintf(fid1,'%s',carnum);
    fclose(fid1);
    winopen('carnum.txt') 
    else
    fprintf('license plate recognition failure\n');
    fprintf('Characters are not clear \n');
    end

  2. #2
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Help
    bonsoir ,
    j'ai presque le meme pfe
    pouvez vous m'envoyer votre rapport svp,
    bien cordialement.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2018
    Messages : 1
    Points : 0
    Points
    0
    Par défaut projet immatriculation
    Citation Envoyé par oonnss Voir le message
    Bonjour
    je suis entrain d'élaborer mon pfe intitulé " parking dépose minute avec reconnaissance des plaques d'immatriculation "
    j'ai pu aboutir le résultat qui est la plaque d'immatriculation à partir d'une image de véhicule capturée par un caméra IP suite à un prog MATLAB .
    mon probléme est au niveau le code de segmentation de la plaque.
    j'ai traité ce code suivant mais pas de résultat.
    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
    clc;
    close all;
    clear all;
    %.................................
    f=imread('55.jpg');
    f=imresize(f,[400 NaN]);       %%Redimensionnez l'image pour l'agrandir
    imshow(f);
    g=rgb2gray(f); %convertir l'image en gris
    g=medfilt2(g,[3 3]); %Utilisez un filtre médian pour filtrer le bruit.
    %**********************************
    conc=strel('disk',1); %crée un élément structurant en forme de disque, où R=1 spécifie la distance entre l'origine de l'élément structurant et les points du disque.
    gi=imdilate(g,conc); %dilate l'image binaire en niveaux de gris,
    ge=imerode(g,conc);            %%%% morphological image processing
    gdiff=imsubtract(gi,ge); %Soustrayez une constante vSubtrez le fond de l'image
    gdiff=mat2gray(gdiff); %Convertissez la matrice en une image par filtre sobel
    gdiff=conv2(gdiff,[1 1;1 1]);
    gdiff=imadjust(gdiff,[0.5 0.7],[0 1],.1);
    B=logical(gdiff);
    [a1 b1]=size(B);
    figure(2)
    imshow(B)
    er=imerode(B,strel('line',100,0));
    figure(3)
    imshow(er)
    out1=imsubtract(B,er);
    F=imfill(out1,'holes');      %%%filling the object
    H=bwmorph(F,'thin',1);
    H=imerode(H,strel('line',3,90));
    figure(4)
    imshow(H)
    %%
    final=bwareaopen(H,floor((a1/15)*(b1/15)));  
    final(1:floor(.9*a1),1:2)=1;
    final(a1:-1:(a1-20),b1:-1:(b1-2))=1;
    %yyy=template(2);
    figure(5)
    imshow(final)
    Iprops=regionprops(final,'BoundingBox','Image');
    hold on
    for n=1:size(Iprops,1)
        rectangle('Position',Iprops(n).BoundingBox,'EdgeColor','g','LineWidth',2); 
    end
    hold off
    NR=cat(1,Iprops.BoundingBox);   %%Data storage section
    [r,ttb]=convn(NR,shape);
    if ~isempty(r)
    xlow=floor(min(reshape(ttb(:,1),1,[])));
    xhigh=ceil(max(reshape(ttb(:,1),1,[])));
    xadd=ceil(ttb(size(ttb,1),3));
    ylow=floor(min(reshape(ttb(:,2),1,[])));    %%%%%area selection
    yadd=ceil(max(reshape(ttb(:,4),1,[])));
        final1=H(ylow:(ylow+yadd+(floor(max(reshape(ttb(:,2),1,[])))-ylow)),xlow:(xhigh+xadd));
        [a2 b2]=size(final1);
        final1=bwareaopen(final1,floor((a2/20)*(b2/20)));
        figure(6)
    imshow(final1)
     
     
        Iprops1=regionprops(final1,'BoundingBox','Image');
        NR3=cat(1,Iprops1.BoundingBox);
        I1={Iprops1.Image};
     
        %%
    carnum=[];
    if (size(NR3,1)>size(ttb,1))
            [r2 to]=connn2(NR3);
     
    for i=1:size(Iprops1,1)
     
    ff=find(i==r2);
    if ~isempty(ff)
                    N1=I1{1,i};
                    letter=readLetter(N1,2);
    else
                    N1=I1{1,i};
                    letter=readLetter(N1,1);
    end
    if ~isempty(letter)
    carnum=[carnum letter];
    end
    end
    else
    for i=1:size(Iprops1,1)
                N1=I1{1,i};
                letter=readLetter(N1,1);
    carnum=[carnum letter];
    end
    end
        %%
     
        fid1 = fopen('carnum.txt', 'wt');
    fprintf(fid1,'%s',carnum);
    fclose(fid1);
    winopen('carnum.txt') 
    else
    fprintf('license plate recognition failure\n');
    fprintf('Characters are not clear \n');
    end
    svp jai besoin ce programme pour mon projet jai trouve des difficulté est ce que vous pouvez mon envoyer votre nouveau programme car celui ci nest pas fini

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2015
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Try this code
    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
    close all;
    clear all;
     
    im = imread('img/car1.jpg');
    im = imresize(im, [480 NaN]);
    imgray = rgb2gray(im);
    imbin = imbinarize(imgray);
    im = edge(imgray, 'sobel');
     
     
    im = imdilate(im, strel('diamond', 2));
    im = imfill(im, 'holes');
    im = imerode(im, strel('diamond', 10));
     
     
    Iprops=regionprops(im,'BoundingBox','Area', 'Image');
    area = Iprops.Area;
    count = numel(Iprops);
    maxa= area;
    boundingBox = Iprops.BoundingBox;
    for i=1:count
       if maxa<Iprops(i).Area
           maxa=Iprops(i).Area;
           boundingBox=Iprops(i).BoundingBox;
       end
    end    
     
    %all above step are to find location of number plate
     
    im = imcrop(imbin, boundingBox);
     
    %resize number plate to 240 NaN
    im = imresize(im, [240 NaN]);
     
    %clear dust
    im = imopen(im, strel('rectangle', [4 4]));
     
    %remove some object if it width is too long or too small than 500
    im = bwareaopen(~im, 500);
    %%%get width
     [h, w] = size(im);
    % Iprops=regionprops(im,'BoundingBox','Area', 'Image');
    % image = Iprops.Image;
    % count = numel(Iprops);
    % for i=1:count
    %    ow = length(Iprops(i).Image(1,:));
    %    if ow<(h/2) 
    %         im = im .* ~Iprops(i).Image;
    %    end
    % end  
     
     
    imshow(im);
     
     
    %read letter
    Iprops=regionprops(im,'BoundingBox','Area', 'Image');
    count = numel(Iprops);
     
    noPlate=[]; % Initializing the variable of number plate string.
     
    for i=1:count
       ow = length(Iprops(i).Image(1,:));
       oh = length(Iprops(i).Image(:,1));
       if ow<(h/2) & oh>(h/3)
           letter=readLetter(Iprops(i).Image); % Reading the letter corresponding the binary image 'N'.
           figure; imshow(Iprops(i).Image);
           noPlate=[noPlate letter]; % Appending every subsequent character in noPlate variable.
       end
    end

Discussions similaires

  1. Reconnaissance des plaques d'immatriculation
    Par siciba dans le forum OpenCV
    Réponses: 8
    Dernier message: 11/12/2012, 02h32
  2. reconnaissance de plaques d'immatriculations
    Par gigi1989 dans le forum ImageJ
    Réponses: 1
    Dernier message: 05/07/2011, 10h30
  3. Reconnaissance de plaque d'immatriculation
    Par gigi1989 dans le forum Traitement d'images
    Réponses: 2
    Dernier message: 22/03/2011, 17h42
  4. reconnaissance de plaque d'immatriculation
    Par bennifi dans le forum Traitement d'images
    Réponses: 0
    Dernier message: 21/07/2010, 13h26
  5. [OCR] Tesseract & Reconnaissance des plaques minéralogiques
    Par Bourak dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 04/11/2008, 09h40

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