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

MATLAB Discussion :

points d’intérêts avec la souris


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2013
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 221
    Points : 31
    Points
    31
    Par défaut points d’intérêts avec la souris
    bonjour
    dans une discussion dans ce forum intitulée détecteur de Harris, j'ai trouvé ce code de détection des points d’intérêts avec la souris
    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
     
     
    % Harris detector
    % The code calculates
    % the Harris Feature Points(FP) 
    % 
    % When u execute the code, the test image file opened
    % and u have to select by the mouse the region where u
    % want to find the Harris points, 
    % then the code will print out and display the feature
    % points in the selected region.
    % You can select the number of FPs by changing the variables 
    % max_N & min_N
    % A. Ganoun
     
    load Imag
     
    I =double(frame);
    %****************************
    imshow(frame);
    k = waitforbuttonpress;
    point1 = get(gca,'CurrentPoint');  %button down detected
    rectregion = rbbox;  %%%return figure units
    point2 = get(gca,'CurrentPoint');%%%%button up detected
    point1 = point1(1,1:2); %%% extract col/row min and maxs
    point2 = point2(1,1:2);
    lowerleft = min(point1, point2);
    upperright = max(point1, point2); 
    ymin = round(lowerleft(1)); %%% arrondissement aux nombrs les plus proches
    ymax = round(upperright(1));
    xmin = round(lowerleft(2));
    xmax = round(upperright(2));
    %***********************************
    Aj=6;
    cmin=xmin-Aj; cmax=xmax+Aj; rmin=ymin-Aj; rmax=ymax+Aj;
    min_N=12;max_N=16;
    %%%%%%%%%%%%%%Intrest Points %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    sigma=2; Thrshold=20; r=6; disp=1;
    dx = [-1 0 1; -1 0 1; -1 0 1]; % The Mask 
        dy = dx';
        %%%%%% 
        Ix = conv2(I(cmin:cmax,rmin:rmax), dx, 'same');   
        Iy = conv2(I(cmin:cmax,rmin:rmax), dy, 'same');
        g = fspecial('gaussian',max(1,fix(6*sigma)), sigma); %%%%%% Gaussien Filter
     
        %%%%% 
        Ix2 = conv2(Ix.^2, g, 'same');  
        Iy2 = conv2(Iy.^2, g, 'same');
        Ixy = conv2(Ix.*Iy, g,'same');
        %%%%%%%%%%%%%%
        k = 0.04;
        R11 = (Ix2.*Iy2 - Ixy.^2) - k*(Ix2 + Iy2).^2;
        R11=(1000/max(max(R11)))*R11;
        R=R11;
        ma=max(max(R));
        sze = 2*r+1; 
        MX = ordfilt2(R,sze^2,ones(sze));
        R11 = (R==MX)&(R>Thrshold); 
        count=sum(sum(R11(5:size(R11,1)-5,5:size(R11,2)-5)));
     
     
        loop=0;
        while (((count<min_N)|(count>max_N))&(loop<30))
            if count>max_N
                Thrshold=Thrshold*1.5;
            elseif count < min_N
                Thrshold=Thrshold*0.5;
            end
     
            R11 = (R==MX)&(R>Thrshold); 
            count=sum(sum(R11(5:size(R11,1)-5,5:size(R11,2)-5)));
            loop=loop+1;
        end
     
     
    	R=R*0;
        R(5:size(R11,1)-5,5:size(R11,2)-5)=R11(5:size(R11,1)-5,5:size(R11,2)-5);
    	[r1,c1] = find(R);
        PIP=[r1+cmin,c1+rmin]%% IP 
     
     
       %%%%%%%%%%%%%%%%%%%% Display
     
       Size_PI=size(PIP,1);
       for r=1: Size_PI
       I(PIP(r,1)-2:PIP(r,1)+2,PIP(r,2)-2)=255;
       I(PIP(r,1)-2:PIP(r,1)+2,PIP(r,2)+2)=255;
       I(PIP(r,1)-2,PIP(r,2)-2:PIP(r,2)+2)=255;
       I(PIP(r,1)+2,PIP(r,2)-2:PIP(r,2)+2)=255;
     
       end
     
       imshow(uint8(I))
    la discussion est résolue mais je comprends pas quel changement dans le code qui la corrigé ?
    premièrement pour est ce qu'elle signifie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fig1=imread('figure1.gif');
    et puis on fait ou bien c'est quoi la frame et comment l'afficher
    si quelqu'un peut m'aider s'il vous plait et merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 160
    Points
    53 160
    Par défaut
    Le code fonctionne avec une image en couleurs indexées définie dans une variable nommée frame, de classe uint8 (sans doute), contenue dans un fichier Imag.mat

    Tu peux donc sans doute remplacer

    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    frame = imread('figure1.gif','gif');
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mars 2013
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2013
    Messages : 221
    Points : 31
    Points
    31
    Par défaut
    merci Mr
    bon pour ce code comment régler les paramètres pour trouver un nombre fixe de points d’intérêts?
    par exemple si je veux aboutir à 50 points pour une image 1 et 50 points pour une image 2 , comment le faire ?

    S'il vous plait comment fixer le nombre de points d’intérêts ?

Discussions similaires

  1. Récupérer les coordonnées de points d'une surface avec la souris
    Par ijnuhbygv dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 06/08/2011, 02h57
  2. [C#] Déplacer un composant avec la souris
    Par GéniuS77 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/04/2011, 00h12
  3. séléctionner le point d'une courbe avec la souris et un axe
    Par maristil dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 10/04/2009, 12h57
  4. Réponses: 10
    Dernier message: 21/01/2007, 02h04
  5. Coordonnées d'un point cliqué a la souris
    Par snipereyes dans le forum OpenGL
    Réponses: 3
    Dernier message: 19/08/2003, 11h34

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