Apprendre les bases du traitement d'image - chapitre 3 : introduction aux différents types de segmentation
Un cours de Patrick Bonnin
Le 2016-05-16 19:30:24, par patrick.bonnin, Membre éprouvé
Bonjour,
J'ai le plaisir de vous annoncer la parution de la troisième partie intitulée « Introduction aux Différents Types de Segmentations » du cours « Les Bases du Traitement d'Image et de la Vision Industrielle et Robotique ».
Cette partie présente succinctement des notions de segmentation*: en contours, en régions, en mouvement, en profondeur et en couleur. Ces segmentations, plus complexes, ne font pas partie des bases que nous présentons à niveau bachelor ou BAC + 3. Elles seront présentées lors d'une seconde série de cours.
Amicalement
Patrick
Les meilleurs cours et tutoriels pour apprendre l'algorithmique
J'ai le plaisir de vous annoncer la parution de la troisième partie intitulée « Introduction aux Différents Types de Segmentations » du cours « Les Bases du Traitement d'Image et de la Vision Industrielle et Robotique ».
Cette partie présente succinctement des notions de segmentation*: en contours, en régions, en mouvement, en profondeur et en couleur. Ces segmentations, plus complexes, ne font pas partie des bases que nous présentons à niveau bachelor ou BAC + 3. Elles seront présentées lors d'une seconde série de cours.
Amicalement
Patrick
-
JipétéExpert éminent séniorBonjour,
Tout cela a l'air passionnant, cependant, dans la partie 2 on trouve, au chapitre IV-A-3, des instructions pour générer le binaire Histogram qui m'ont semblées incomplètes :Envoyé par patrick_bonnin
Code : 1
2
3
4
5
6
7
8EdHistogram.o: In function `main': EdHistogram.c:(.text+0x236): undefined reference to `Reading_ImageHeader' EdHistogram.c:(.text+0x3a1): undefined reference to `Creation_Image' EdHistogram.c:(.text+0x4b7): undefined reference to `Creation_Image' EdHistogram.c:(.text+0x51f): undefined reference to `Reading_ImageData' EdHistogram.c:(.text+0x6c3): undefined reference to `Writing_ImageData' EdHistogram.c:(.text+0x720): undefined reference to `Free_Image' EdHistogram.c:(.text+0x765): undefined reference to `Free_Image'
) mais ça ne suffit pas, il me reste ça sur les bras :
Code : 1
2
3
4
5
6
7EdLibHistogram.o: In function `HistogramPGM': EdLibHistogram.c:(.text+0x32c): undefined reference to `log' EdLibHistogram.c:(.text+0x34b): undefined reference to `log' EdLibHistogram.o: In function `HistogramPPM': EdLibHistogram.c:(.text+0x70e): undefined reference to `log' EdLibHistogram.c:(.text+0x72d): undefined reference to `log' EdLibHistogram.c:(.text+0x9f5): undefined reference to `log'
Code : gcc -o Histogram EdHistogram.o EdLibHistogram.o EdUtilities.o -lm // "-lm", le flag qui sauve !
Sinon, un microscopique souci avec la fonction de zoom, qui perd un pixel en générant le résultat, et pourtant j'ai demandé un rapport simple, "x 2", et ce quel que soit la méthode :
Devant l'original, derrière l'image agrandie, regardez les tailles dans les barres de titrele 21/06/2019 à 15:34 -
JipétéExpert éminent séniorBonjour,
et merci pour ce retour.
Peut-être, mais en voyant ça après avoir demandé un facteur 2 (la source en vert en bas, le résultat zoomé en gris en haut),
je me suis simplement dit que quelque chose clochait.
Car in fine je dois avoir un résultat de 512x340.
Et pour avoir 512 colonnes en largeur, il va bien falloir que j'aie 512 pixels par ligne.
Après, s'il faut faire des bidouilles pour y arriver, je vais donc étudier ça :
Ça tombe bien, je suis dessus en ce moment.
Ceci dit, quand j'ouvre un fichier avec ImageJ, que je demande Image/Scale... et que je spécifie XScale et YScale à 2, la largeur et la hauteur de l'image résultantesont biens'affichent comme multipliées par 2.
Les deux champs Width et Height ont été automagiquement remplis en saisissant les valeurs en X et en Y, et en cliquant sur [OK] on obtient ça (résultat tronqué pour ne pas alourdir) :
Noter les tailles sous les barres de titre.
Pas de raison que EdZoom ne fasse pas pareil.
Bon dimanche,
EDIT :
Et quand on regarde le code source du plugin Scaler.java, on ne peut que constater qu'il utilise la même simplicité que celle que j'ai proposée :
Code : 1
2
3
4if (xscale>0.0 && yscale>0.0) { newWidth = (int)(r.width *xscale); newHeight = (int)(r.height*yscale); }
le 23/06/2019 à 11:03 -
GeoffreyOnRailsMembre confirméBonjour,
Tout d'abord un grand bravo et un grand merci pour ce contenu de grande qualité, ça me permet de découvrir un nouveau domaine extrêmement intéressant
Il est indiqué que l'environnement EdEnviTI est disponible sur le site developpez.com, mais je n'ai pas réussi à le trouver, serait-il possible de fournir un lien? Ou bien est-il prévu de les diffuser uniquement pour le dernier article de la série?le 19/05/2016 à 18:45 -
patrick.bonninMembre éprouvéBonjour,
Tout d'abord, merci pour ton retour. c'est sympa.
EdEnviTI, l'environnement (uniquement 6 fichiers dont 3 .c et 3 .h) ainsi que l'ensemble
des opérateurs présentés dans les 5 premiers articles constituant la bibliothèque EdVision
seront fournis sur le site : Francis m'a expliqué comment faire.
Le sixième et dernier article, en relecture orthographique, présente EdEnviTI, et surtout comment
l'utiliser simplement. Le filtre lisseur moyen, donné en exemple est expliqué, puis je montre comment créer
le filtre lisseur gaussien, en modifiant les codes source du moyen, opération à réaliser en moins de 10 minutes.
Il contiendra également les deux liens.
Cordialement
Patrick Bonninle 19/05/2016 à 21:35 -
laurentbargadaNouveau Candidat au ClubExcellente série d'articles... on attend la suite avec impatience !
A+le 23/05/2016 à 14:44 -
patrick.bonninMembre éprouvéBonjour,
Je vous remercie pour votre retour.
Les trois suivants arrivent.
Cordialement
Patrick Bonninle 23/05/2016 à 19:54 -
joublieMembre confirméBonjour.
N'est-il pas paradoxal qu'un tel cours comporte des images trop compressées (ou trop petites aussi) ou encore utilise une compression JPEG au lieu d'une compression GIF ou bien PNG pour des équations, textes, etc. ? C'est dommage, tout le monde n'a pas une très bonne vue et la lisibilité y gagnerait.le 28/05/2016 à 14:01 -
Francis WalterExpert éminent séniorle 28/05/2016 à 14:14
-
patrick.bonninMembre éprouvéBonjour,
Je vous remercie pour votre retour.
Pour les images, Francis vous a répondu.
Je pense qu'il en est de même pour les équations.
J'ai préféré faire des copies d'écran des équations sous Latex,
plus "jolies" que sous word / OpenOffice.
Sinon, vous pouvez vous procurer le livre :
"Les Bases du Traitement d'Image et de la Vision
Industrielle et Robotique" sur "lulu.com".
Cordialement
Patrick Bonninle 28/05/2016 à 19:34 -
JipétéExpert éminent séniorJ'ai fait ça, pour le zoom en haut (dans EdZoom.c) et pour la réduction en bas (EdReduction.c), ça me donne des valeurs correctes :
Code : 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15/* --- Zoom image --- */ // jipété : pourquoi cette construction tordue ? //ncolZoom = (ncol - 1) * scale + 1; //nligZoom = (nlig - 1) * scale + 1; // pourquoi pas plutôt et plus simplement comme ça : ncolZoom = ncol * scale; nligZoom = nlig * scale; /* --- Reduced image --- */ // jipété : pourquoi cette construction tordue ? //ncolred = (ncol - 1) / scale + 1; //nligred = (nlig - 1) / scale + 1; // pourquoi pas plutôt et plus simplement comme ça : ncolred = ncol / scale; nligred = nlig / scale;
le 21/06/2019 à 19:23