Matlab : dégradé sur des points alétoires
Fermé
Bertrand
-
24 août 2009 à 14:52
dzgirl Messages postés 1 Date d'inscription vendredi 4 juillet 2014 Statut Membre Dernière intervention 4 juillet 2014 - 4 juil. 2014 à 01:46
dzgirl Messages postés 1 Date d'inscription vendredi 4 juillet 2014 Statut Membre Dernière intervention 4 juillet 2014 - 4 juil. 2014 à 01:46
A voir également:
- Matlab : dégradé sur des points alétoires
- Fonction triangle matlab - Forum Matlab
- Interpolation de lagrange matlab ✓ - Forum Matlab
- Courbe de tendance matlab ✓ - Forum Matlab
- Esperance matlab - Forum Matlab
- Courbe de tendance - Forum Excel
3 réponses
Salut,
renseignes toi un peu sur les couleurs. Je sais que des planches de dégradées sont prédéfinies dans Matlab. Ensuite selon les coordonnées de ton points sur calcul un rapport min max te permettant de définir la couleur adaptée à ton point.
renseignes toi un peu sur les couleurs. Je sais que des planches de dégradées sont prédéfinies dans Matlab. Ensuite selon les coordonnées de ton points sur calcul un rapport min max te permettant de définir la couleur adaptée à ton point.
Pour ceux que ça intéresse : il faut définir un vecteur couleur de gris (pour chaque couple de données) de la manière suivante : grey = [Q(i) Q(i) Q(i)] pour i=1...n.
puis, on construit la figure pas à pas par : plot(X(i),Y(i),'.','Color',grey);
données :
X ; % de longueur n
Y ; % de longueur n
Q ; % de longueur n
Code :
h=axes;set(h,'Color',[0 1 0]); % met l'arrière plan en vert
hold on ; % pour permettre l'ajout de nouveaux points sur la figure
for (i=1:length(X))
grey=[] ;
grey=[ Q(i) Q(i) Q(i) ];
plot(X(i),Y(i),'.','Color',grey);
hold on; % pour permettre l'ajout de nouveaux points sur la figure
end
En pratique, il faut 1 seconde pour 100 points à tracer. Si quelqu'un voit comment optimiser l'algorithme, je suis preneur !
puis, on construit la figure pas à pas par : plot(X(i),Y(i),'.','Color',grey);
données :
X ; % de longueur n
Y ; % de longueur n
Q ; % de longueur n
Code :
h=axes;set(h,'Color',[0 1 0]); % met l'arrière plan en vert
hold on ; % pour permettre l'ajout de nouveaux points sur la figure
for (i=1:length(X))
grey=[] ;
grey=[ Q(i) Q(i) Q(i) ];
plot(X(i),Y(i),'.','Color',grey);
hold on; % pour permettre l'ajout de nouveaux points sur la figure
end
En pratique, il faut 1 seconde pour 100 points à tracer. Si quelqu'un voit comment optimiser l'algorithme, je suis preneur !
dzgirl
Messages postés
1
Date d'inscription
vendredi 4 juillet 2014
Statut
Membre
Dernière intervention
4 juillet 2014
4 juil. 2014 à 01:46
4 juil. 2014 à 01:46
j'ai pas compris comment définir l'intensité Q et aussi les données X et Y
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
25 août 2009 à 09:53
25 août 2009 à 09:53
à ta place, je ferai une image indéxé avec une colormap grise + verte.
Ensuite, tu fait une matrice (n,n) avec une valeur particulière et un imshow correcpondant.
Pour optimiser ton algorithme, tu pourrai regrouper les pixels de même valeur pour les tracer une seul fois.
plot doit être ce qui prend le plus de temps donc en diminuant le nombre d'appel à plot tu doit pouvoir diminuer ton temps d'exécution.
Ensuite, tu fait une matrice (n,n) avec une valeur particulière et un imshow correcpondant.
Pour optimiser ton algorithme, tu pourrai regrouper les pixels de même valeur pour les tracer une seul fois.
plot doit être ce qui prend le plus de temps donc en diminuant le nombre d'appel à plot tu doit pouvoir diminuer ton temps d'exécution.