Création de la page: 08/2013. Dernière mise à jour: 09/2021 J'ai conçu ces scripts MATLAB afin de calculer les surfaces à partir de plans. S'ils vous intéressent, vous pouvez me contacter.
Mais notez bien qu'il s'agit de scripts qui nécessitent que vous ayez
MATLAB (ou Octave), et que vous sachiez vous en servir. Sinon, voyez
plutôt le paragraphe "Autres solutions", au bas de la feuille.
Le
principe:
Le programme lit une image numérique, et compte les pixels de couleurs
identiques.
Si
l'image comporte une zone colorée de surface connue (par exemple un
rectangle dessiné sur l'image dont on donne la surface), le programme
fait les règles de trois et indique, en plus du nombre de pixels de chaque
couleur, la surface correspondante. Usage:
calcul de surfaces sur des plans papier (il suffit de les numériser) ou
numériques. Mesure de surfaces complexes (formes quelconques, pas
forcément connexes). Et bien d'autres...
Précisions:
Le comptage et le tri des pixels se fait pixel par pixel, en
comparant les valeurs R, G, B. Si on veut s'en servir pour mesurer des
surfaces, il faut
donc que tous les pixels de la surface soient de couleur identique. Si
l'image provient
d'une numérisation (scan), ce n'est généralement pas le cas. Pour le
vérifier, il faut utiliser la "pipette" d'un logiciel de retouche
d'images. Ensuite, il y a plusieurs possibilités: soit réduire le
nombre de couleurs de l'image pour converger vers un faible nombre de
couleurs (16 couleurs par exemple, mais sur la plupart des
images
ça ne donnera pas grand chose), soit dessiner des formes et les
remplir avec des couleurs uniformes (c'est dans les cordes de n'importe
quel logiciel de retouche d'images, et si vous n'en avez aucun, je vous
conseille le logiciel gratuit Irfanview). Voir également plus bas le paragraphe "Pour réduire le nombre de couleurs de l'image"
Exemple
1:
Je suis parti de ce
plan, qui est un scan sur lequel j'ai copié la règle de 4m de long
servant d'échelle, pour en faire un carré de 4m de côté et définir une
surface de référence de 16m², puis j'ai barbouillé quelques surfaces avec des couleurs caractéristiques:
Le
programme compte les pixels, et classe les couleurs de la plus présente
à la moins présente dans l'image, puis demande quelle est la surface de
référence. Ici, il s'agit de la couleur numéro 3, et on lui indique
qu'elle correspond à 16m²:
Résultat final :
On
peut demander au programme d'afficher uniquement les pixels d'une
couleur donnée. Si la couleur est sombre, les pixels sont
automatiquement affichés sur un fond blanc, et si la couleur est
claire, les pixels sont automatiquement affichés sur un fond noir:
Exemple
2:
Je suis parti d'un plan du cadastre, récupérable en ligne sur www.cadastre.gouv.fr
Le site du cadastre fournit quelques outils permettant des mesures,
mais je ne me suis servi que de celui qui permet de dessiner une
ligne et de connaitre sa vraie longueur, ce qui donne l'échelle de
référence de l'image (sur le dessin ci-dessous, ligne rouge de 24.91
mètres de long):
et j'ai demandé le décompte par Matlab: 270m² pour le vert et 26m² pour le magenta:
Comment mesurer des longueurs sur
une image numérique
Il faut faire une bête règle de 3 entre le nombre de pixels et la
longueur de la ligne.
Mais
la plupart du temps, les lignes sont inclinées, et pour mesurer la
longueur en pixels de la ligne, si vous n'avez pas de logiciel
spécifique, vous pouvez utiliser le logiciel gratuit Irfanview
et le théorème de Pythagore.
Avec
Irfanview, cliquer sur le début de la ligne, puis draguer jusqu'à
l'autre extrémité de la ligne. IrfanView dessine un rectangle. Vous
pouvez ajuster ensuite les positions des côtés du rectangle en cliquant
sur un des côtés pour le déplacer. Irfanview affiche dans la barre
supérieure la largeur et la hauteur du rectangle, en pixels. Sur
l'image ci-dessous, le rectangle fait 286 x 189 pixels :
Puis avec l'aide de votre tableur favori (ou de votre calculette),
utiliser le théorème
de Pythagore pour calculer la longueur de la diagonale du
rectangle:
diagonale = racine ( largeur x largeur +
hauteur x hauteur)
La même méthode m'a ensuite permis de côter les dimensions du polygone
vert que j'avais dessiné "au pif" sur l'image:
Pour réduire le nombre de couleurs de l'image Il
y a plein de méthodes dépendant de l'image de départ, des possibilités
de votre logiciel de retouche d'images, et de votre dextérité pour vous
en servir.
Les
outils de sélection genre "baguette magique" et pour lesquels on peut
définir la tolérance sur la couleur sélectionnée peuvent s'avérer utiles
Autres solutions The Gimp ferait le boulot ? => "Couleurs/Informations/Histogramme. Clique sur la couleur voulue sur l'histogramme et en bas il y a "compte" et le nb de pixel !" GeoTool de Calgeo : logiciel payant (250€) qui fait un travail un peu similaire.