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 :

Maximum d'une image


Sujet :

Images

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 160
    Par défaut Maximum d'une image
    Bonjour,

    Mon problème est le suivant :

    j'ai une image, sur celle ci je définis une région d'interet à l'aide de impoly. Ensuite j'aimerai déterminer la valeur maximum de mon image à l'interieur de ce polygon(ou masque), et déterminer les coordonnées de ce pixel (et le ploter).
    (mes coordonnées sont en longitudes, latitudes).

    Cependant lorsque je plot mon point maximum se situe en dehors du masque...
    Je ne comprend pas, cela doit être tout bête, mais je n'arrive vraiment pas à voir mon erreur.

    Merci d'avance

    Voici mon 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
     
    clear all
    close all
    clc
    format long
     
    DEM=imread('DEM.tif');
    mask=imread('MASK.tif');%j'utilise en fait cette image pour définir plus précisement les contours de mon nouveau masque mask2
    s=size(mask);
    Landsat=imread('Landsat.tif');
    INFO=geotiffinfo('Landsat.tif');
    INFO_LAT=INFO.BoundingBox(:,1);
    INFO_LON=INFO.BoundingBox(:,2);
     
    %Détermination des frontières de ma fenêtres
    MIN_Y=min(INFO_LAT);
    MAX_Y=max(INFO_LAT);
    MIN_X=min(INFO_LON);
    MAX_X=max(INFO_LON);
     
    x=[1:s(1)]';
    y=[1:s(2)]';
    X=[MIN_X:15:MAX_X]';
    Y=[MIN_Y:15:MAX_Y]';
    X_N=X(x);
    Y_N=Y(y);
     
    %création d'une grille pour pouvoir récupérer les coordonnées de chaques points
    [GRI_X GRI_Y]=meshgrid(X_N,Y_N);
    GRI_X=GRI_X';
    GRI_Y=GRI_Y';
     
     
     
    figure
    imagesc(mask,'XData',[MIN_X MAX_X],'YData',[MIN_Y MAX_Y])
    axis([MIN_X MAX_X MIN_Y MAX_Y])
    %ici je détermine mon nouveau masque
    h=impoly(gca);
    pos=getPosition(h);
    mask2=createMask(h);
     
    figure
    v=imagesc(DEM,'XData',[MIN_X MAX_X],'YData',[MIN_Y MAX_Y])
    set(v,'alphadata',mask2>0)
    axis([MIN_X MAX_X MIN_Y MAX_Y])
     
     
    f=find(mask2==1);
    g=find(mask2==0);
    DEM(g)=0;%je met toutes les valeurs en dehors de mon nouveau masque à 0
     
     
    MAX_ALT=max(DEM(:));%je calcul le maximum de mon nouveau masque
    coord_max=find(DEM==MAX_ALT);%j'extrait les indices de ce maximum
     
    %ici j'en extrait les coordonnées
    x_point=GRI_X(coord_max);
    y_point=GRI_Y(coord_max);
     
     
     
    hold on
    plot(x_point,y_point,'o')

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 160
    Par défaut
    Bon en fait, mon problème viens du meshgrid. Je n'arrive pas à le définir corréctement.
    Je veux, en fait, une matrice de 797 ligne et de 1279 colonne. Mais je n'arrive pas à la définir.

    Je voudrais que lorsque je tape :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    X=[MIN_X:15:MAX_X]';
    Y=[MIN_Y:15:MAX_Y]';
    X_N=X(x); %avec min(X_N)=395079  et max(X_N)=396273
    Y_N=Y(y); %avec min(Y_N)=54523 et max(Y_N)=56440
     
    [GRI_X GRI_Y]=meshgrid(X_N,Y_N)
    Avec GRI_Y un vecteur qui ne varie que suivant Y, avec valeur minimale en première ligne et valeur maximale en dernières ligne.

    Avec GRI_X un vecteur qui ne varie que suivant X, avec valeur minimale en première colonne et valeur maximale en dernières colonne.

    (en gardant en mémoire qu'on a 797 lignes et 1279 colonnes).

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 160
    Par défaut
    Ok, en fait, l'erreur viens simplement de s. Il fallait juste inverser s(1) et s(2).

Discussions similaires

  1. [CR XI] Taille maximum d'une image dans un rapport
    Par macfly_007 dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 18/11/2014, 11h58
  2. [Débutant] maximum de le fonction distance d'une image
    Par sirouna dans le forum Images
    Réponses: 6
    Dernier message: 16/03/2010, 17h41
  3. Calcul du maximum dans une image 3D
    Par kmaniche dans le forum Images
    Réponses: 8
    Dernier message: 25/04/2009, 10h53
  4. [SQL] Dimensions maximum d'une image
    Par Sandara dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 18/03/2007, 12h42
  5. Hauteur maximum d'une image
    Par G_Kill dans le forum ASP.NET
    Réponses: 4
    Dernier message: 08/03/2007, 21h26

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