Re : Réaliser une matrice avec Excel
Bonjour Dranreb,
En effet il est toujours plus simple de supprimer des choses que d'en rajouter. Ces infos ne me gênent pas en soit. Ma crainte est de voir un ralentissement du code de calcul si on le sollicite sur beaucoup de lignes avec beaucoup de colonnes. C'est uniquement en ce sens que je pensais essayer d’alléger au maximum le code. Mais ça peut attendre encore un peu en effet
En ce qui concerne le contrôle image, la aussi c'est la même remarque. J'ai peur que ça contribue au ralentissement de l'enssemble. Sinon de la place, il y en sur une feuille Excel tout de même. On va bien lui trouver un coin pépère^^. En plus j'aime bien quand l'image est chargée dans le contrôle image. On garde donc toutes les données pour le moment, ainsi que le contrôle image dans sa taille actuelle.
(En tout cas je suis content de voir que le contrôle image se manipule assez aisément avec ses propriétés. Merci pour l'info)
Je n'ai pas vu beaucoup de couleurs dans ton image. En fait je n'en vois pas bien le rapport avec le reste
En effet, l'image que j'ai envoyé représente seulement un schéma grossier. L'image en elle même n'a rien à voir. Je ne voulais pas vraiment faire transiter ce genre d'images ici, mais il me semble naturel de partir sur une image de référence sinon c'est trop compliqué en effet.
Je met donc à disposition en pièce jointe une image typique de celles que j'utilise habituellement. Le code devra donc être adapté pour ce genre d'images. Tu voulais des couleurs ? Il y en a pleins sur cette image^^. Ce sera idéal pour faire progresser le code je pense. Et puis c'est plus intéressant de travailler sur du concret. Nous utiliseront donc cette image comme référence.
En ce qui concerne la ligne de code que tu m'a demandé de changer je ne vois pas son influence. Je pense que tu veux mettre cette ligne, au cas ou j'ai d'autres colonnes à calculer. Hors si je ne met pas ta ligne de code, je peux très bien rajouter des formules sur des colonnes en rapport avec la table qui est déjà créée et ça ne pose pas de problème. Donc j'ai mal compris. Alors à quoi sert cette ligne de code car je n'en comprends pas le sens (même en lisant ton explication). Dsl je suis lent à comprendre parfois. Du coup j'ai préféré ne rien changer sur le code pour le moment.
Je n'ai aucune idée de ce que tu veux y mettre. Il se pourrait bien que tout ce que tu veux calculer se le puisse non pas par des formules s'appuyant sur un nombre restreint de pixels, mais par une analyse de tous !
Euh...comment dire, c'est exactement ça que je cherche à faire en fait. Si j'ai décidé de mettre en place une maille X, Y c'est justement pour placer un certains nombre de points sur la photo afin d'en extraire les informations voulues (X,Y,Angle). C'est aussi pour cette raison que je voulais avoir la possibilité de régler la finesse de la maille au travers du pas pour obtenir une bonne image. Mon but est de prendre le plus de pixels possible afin d'avoir la meilleure précision possible. Je ne savais pas qu'on pouvait traiter tous les pixels dans leurs ensemble. Ce serait génial en effet. Mais je me dis que de toute façon plus j'aurais de points, plus les fichiers seront gros et gourmands en temps de calcul. (Sauf si on ne traite pas les choses par des formules de manière itératives en effet. Mais je ne vois pas comment on pourrait faire autrement de toute façon).
Je ne sais pas quoi répondre la. Traiter tous les pixels dans leur globalité serait super en effet. Mais j'ai des doutes quand à la faisabilité du truc.
Pourquoi ne pas essayer un coup !
De plus, sois rassuré je n'ai pas 36 mille calculs à faire en plus. Mon but est de convertir mon image qui est en Pixel vers une unité métrique. En gros au lieu de travailler avec des pixels j'aimerais avoir des micromètres. C'est une simple règle de proportionnalité qui me permet de faire ça. Je sais que 691 pixels correspondent à 642,153 microns. Du coup je pensais afficher les coordonnées X et Y des pixels, puis juste à côté les coordonnées X et Y en microns. Mais moi à pars boucler sur toutes les lignes pour recalculer la conversion je ne sais pas faire !
Dans le même style je souhaite normaliser mon angle pour qu'il soit compris entre 0 et 1. Donc je pensais rajouter une colonne à coté de celle de l'ange et qui contiendrait un angle normalisé. J'en ai besoin sous cette forme la pour la suite.
Voila les seules formules que je dois calculer en plus des données déjà présentes sur le fichier actuel. C'est pas franchement méchant, mais je suis capable de faire ramer le code si je ne programme mal le tout
. A mon avis la forme itérative n'est pas la plus adaptée ici.
J'ai vu un cercle dans l'image ?... je pourrais calculer l'angle de teinte moyen de tous les pixels compris entre deux distances voisines d'un centre, la direction du gradient si ce n'est pas équilibré etc. Il s'agit de définir ce qu'on veut exactement.
Dans le schéma que j'ai envoyé il y a bien un cercle. C'est justement le cercle dont je faisais référence dans les premiers posts. (Tu le verras très bien sur la nouvelle image en pièce jonte). Sur l'ensemble de la photo, SEUL l'intérieur de ce cercle m'intéresse. TOUT le reste qui se trouve en dehors du cercle ne m'intéresse pas. Voila également pourquoi je disais que j'avais créé ma propre maille circulaire. Une maille qui prends en compte UNIQUEMENT les points disposés dans un cercle.
Tu touche du doigts la suite du projet Dranreb !!! Té carrément calé sur le sujet dis donc ??? En effet, je vais chercher à faire la moyenne des angles sur une petite surface circulaire. Cette moyenne d'angle est primordiale pour la suite. La direction du gradient ne m'intéressera pas ici. Seul la définition du cercle (centre et rayon), les pas en X et Y ainsi que la moyenne des angles m'importent.
Mais attention c'est un peu plus délicat qu'il n'y parait. En effet il y a deux cercles à définir. Les deux cercles ont le même centre mais pas le même rayon. Le premier cercle va définir l'enveloppe extérieur de l'ensemble des points qui m'intéressent. Il s'agit en quelque sorte d'un rognage de la photo. On ne garde que les points présents à l'intérieur du cercle. Il aura généralement un rayon de 125 microns et la résolution la plus haute possible en terme de maillage.
Uns fois ce premier cercle correctement paramétré et fonctionnel, le but du jeu va être de trouver la teinte moyenne du centre du cercle. Il faut donc définir un deuxième cercle de même centre que le premier mais avec un rayon très petit (10 Microns environ). Pour ce faire il faudra utiliser le même centre de cercle et définir une toute petite maille circulaire ou seront disposés soit une Centaines de pixels, soit tous les pixels comme tu le sous-entendais. C'est juste pour avoir l'angle au centre même de mon image. Il ne s'agit pas de calculer l'angle moyen sur le grand cercle, mais sur le petit cercle.
Je ne sais pas si je suis clair. Mon dieu que je m'exprime mal ! Pourtant c'est très simple il me semble (simple à comprendre je veux dire, pas à faire). Dans tous les cas, si tu as des questions Dranreb n'hésite surtout pas. Je ferais de mon mieux pour redéfinir les choses.
Et établir une correspondance entre mes angles et les épaisseurs. 5 points seulement pourraient l'établir à l'aide d'une courbe conique.
La je suis bluffé si tu fais un truc comme ça ! Moi j'utilise la teinte au centre du cercle pour justement faire une correspondance avec l'épaisseur. J'aimerais comprendre comment tu compte t'y prendre pour faire le lien entre angle d'un pixel et son épaisseur ??? Je ne vois pas trop le coup venir. Mais l'idée est la même. Je veux représenter en 3D ET en échelle d'épaisseur l'image initiale. Quand je dis en 3D, c'est à dire utilisé les cordonnées X,Y,Angle faire un tableau croisé dynamique, pour afficher la matrice et enfin avec Excel 2007 utiliser un graph de surface. J'obtiens alors très facilement et surtout très visuellement une image 3D de la photo initiale.
Tu vois Dranreb, il y a énormément d'informations à manipuler pour obtenir le résultat escompté. C'est pourquoi je désirais alléger le code au maximum pour ne pas se noyer. Mais si on arrive à disposer proprement l'ensemble ça devrait être jouable. C'est du costaud en tout cas...
Il est bon de faire un résumer pour ne pas se perdre dans toutes ces propositions :
-Garder le contrôle image pour le moment ainsi que toutes les données de la table déjà calculées
-Travailler uniquement avec l'image de référence que j'ai placé en pièce jointe
-Vérifier si l'idée de créer une maille rectangulaire ou circulaire est la plus adaptée à ce projet. Tu parlais de traiter tous les pixels dans leur globalité. Je demande à voir un exemple pour mieux comprendre le truc. Il ne faut pas oublier que je veux tracer des graphiques en surfaces au final. J'aurais donc besoin de coordonnées pour ce faire, donc d'un ensemble de points
-Rajouter une colonne de correspondance entre Pixels et Microns, ainsi qu'une colonne qui contient l'angle normalisée
-Essayer de se pencher sur le problème de maillage circulaire qui reste le cœur de ce post. Pour le grand cercle, il faudrait entrer le centre du cercle (en pixels ou bien en microns peut importe), le rayon que l'on désire, et le pas en X, Y
-Une fois l'enveloppe extérieur définie, c'est pratiquement gagné. Il suffit de récupérer un échantillon de points au centre du cercle pour en obtenir la valeur en Angle moyenne
On vas déjà essayer de tendre vers un fichier qui réalise plus ou moins l'ensemble des demandes. On verras ensuite ce que l'on pourra en dire. Dranreb, j'avoue que ça deviens de plus en plus complexe. Si tu veux continuer de m'aider, prends ton temps je ne suis pas pressé. Je préfère avancer pas à pas pour que ça arrange tout le monde. Par contre si jamais c'est un jeu d'enfant pour toi, n'hésite pas à m'en demander plus car j'ai pleins d'idées pour faire évoluer le code
Mais bon chaque chose en son temps. Si déjà j'obtiens une première version stable ce serait top.
Bien cordialement,
André
Ps : En cadeau j'ai mis un fichier Excel (2007) qui contient les fameux graphs 3D que je réalise actuellement et qui me prennent un temps phénoménal !!!! L'axe X est en pixel, Y en pixel et Z en HUE non normalisé. Mon logiciel me donne un HUE compris entre 0 et 65535 due au fait qu'il convertisse mon image .tif en 48 bit. Dranreb, tu devrais toi aussi parvenir à obtenir ce genre de graphs avec ton fichier Excel. J'ai testé et ça marche bien aussi