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 :

Création et remplissage auto des champs d'une structure [Débutant]


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Création et remplissage auto des champs d'une structure
    Bonjour à tous,

    Je suis débutant sous Matlab et je travaille sur un projet de traitement de nuages de points 3D.

    Le contexte est que je dispose d’un nuage sous forme d’une matrice de n lignes (pour n points) et 3 colonnes (coordonnées X, Y et Z). Ce nuage est ensuite projeté sous forme de deux images :
    • Une image de densité qui m’indique le nombre de points projetés par pixel
    • Une image d’élévation qui donne l’altitude maximale pour chaque pixel parmi les points qui y sont projetés (pas utile pour la suite)


    Pour créer ces images, j’emploie donc la boucle suivante :
    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
         maxX = max(nuage(:,1));
        maxY = max(nuage(:,2));
        maxZ = max(nuage(:,3));
        minX = min(nuage(:,1));
        minY = min(nuage(:,2)); 
        minZ = min(nuage(:,3));		
        bornes = [minX,minY,minZ; maxX, maxY, maxZ]; %definit les limites du nuage
        
    pas=0.05; %dimension du pixel pour les images
    
    dimX = ceil((bornes (2,1) - bornes(1,1))/pas); %definit les dimensions de l'image en function du pas
    dimY = ceil((bornes (2,2) - bornes(1,2))/pas); 
    matPCd = zeros(dimX,dimY); %creation de la matrice vide à la taille de l'image
    matPCzmax = zeros(dimX,dimY); 
    pointMin = bornes(1,:); %definition du point minimum en fonction des bornes
     
    for i=1:dimX 
        if size(nuage,1) >= 1
            % extraction des points selon la coord. X 
            pC_X = find (nuage(:,1) >= pointMin(1)+(i-1)*pas & nuage(:,1) < pointMin(1)+i*pas);
            if size(pC_X,1) >= 1 
                for j=1:dimY
                    % extraction des points selon la coord. Y 
                    pC_XY= find (nuage(pC_X,2) >= pointMin(2)+(j-1)*pas & nuage(pC_X,2) < pointMin(2)+j*pas);
                    pC_ajout = pC_X(pC_XY);
                    if isempty(pC_ajout)==0
                    matPCd(i,j) = size(pC_ajout,1); % image de densite des points
                    matPCzmax(i,j) = max(nuage(pC_X(pC_XY),3)); % image d'altitude max des points
                    strucPoints(dimX,dimY)=struct(); 
                    end
                end
            end
       end
    end	
    Mon objectif est de remplir la structure (créée sous forme de matrice et de mêmes dimensions que l’image) et d’avoir dans chaque cellule, les points du nuage projetés.

    Exemple : pour le pixel à la position (2,3), l’image de densité indique 3 points. Dans ma structure, je souhaiterais alors pour la cellule localisée en (2,3), 3 champs ayant pour valeur [ X Y Z ] issus de "nuage(pC_X(pC_XY))" comme le montre le schema:

    Nom : Capture.PNG
Affichages : 376
Taille : 34,3 Ko

    J’ai donc créé une structure de dimensions similaires à celles de l’image, mais je ne vois pas comment lier la valeur de chaque pixel de l’image de densité aux nombre de champs pour la structure. De même, pour récupérer les valeurs de "nuage(pC_X(pC_XY))" à chaque cycle pour les attribuer en valeurs aux champs définis précédemment.

    Auriez-vous des pistes pour me guider ? Je cale complètement sur ces deux derniers points et cela me paraît difficilement automatisable…

    Merci par avance !

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 8
    Points : 7
    Points
    7

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ordre des champs d'une structure
    Par shaiHulud dans le forum MATLAB
    Réponses: 5
    Dernier message: 26/09/2012, 13h46
  2. façon d'écrire des champs d'une structure
    Par alamako dans le forum Débuter
    Réponses: 2
    Dernier message: 14/06/2011, 17h12
  3. [AC-2007] Importation et remplissage automatique des champs d'une table
    Par vincent1746 dans le forum VBA Access
    Réponses: 6
    Dernier message: 31/05/2010, 14h17
  4. Réponses: 2
    Dernier message: 06/11/2007, 09h14
  5. ordre des champs dans une structure
    Par oussema dans le forum C
    Réponses: 8
    Dernier message: 08/03/2007, 18h42

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