Précédent   Forum des professionnels en informatique > Environnements de développement > MATLAB > Images
Images Forum d'entraide sur le traitement d'images en MATLAB
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/02/2012, 14h37   #1
Invité de passage
 
Inscription : février 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 3
Points : 0
Points : 0
Par défaut Traitement d'images matlab

Bonjour,

Je dois réaliser un projet basé sur le traitement d'image avec Matlab. Je vais d'abord vous expliquer le but du projet et vous montrer mon début de programme. Cependant débutant avec Matlab, j'ai quand même réussi des étapes dans mon projet mais je bloque sur certains.

A la base, j'ai une image de pied diabétique.


Avec mes collègues, on a défini plusieurs étapes:
1- Découper l'image de façon à ne plus avoir l'indicateur de température
2- Découper le pied gauche
3- Retourner le pied de façon à pouvoir le superposer sur le pied droit (pour que les orteils coïncident)
4- Détection des contours
5- Superposer le pied gauche sur le pied droit

Pour l'instant, on a réussi les étapes 1, 2, 3 et 4.
Pour les étapes 1 et 2, on a utilisé "imcrop"

Code :
1
2
3
4
5
pieddecoupe = imcrop (imagepied, [0 0 500 600]); 
piedgauche = imcrop (pieddecoupe, [40 0 240 600]);
pieddroit = imcrop (imagepied, [260 0 230 600]);
axis('image'); 
axis on;
Je trouve ça assez rudimentaire mais ça marche. En fait, nous ne savons pas comment optimiser ces étapes.

Pour l'étape 3, on a fait une symétrie du pied gauche:
Code :
sym_piedgauche = piedgauche(:,end:-1:1,:);
Pour l'étape 4, on a passé les images en niveau de gris puis avec la fonction edge on a fait les contours:
Code :
1
2
3
4
5
6
I = rgb2gray(sym_piedgauche); 
contourPG = edge(I,'log');
J = rgb2gray(pieddroit);
contourPD = edge(J,'log');
taille = size(contourPG);
contourPD = imresize(contourPD,taille);
Pour la 4, j'ai essayé de trouver comment utiliser la méthode snake mais sans résultat pour le moment.

On en est à l'étape 5, le recalage:
Code :
1
2
3
4
5
Image_base = contourPG;
Image_input = contourPD;
[image_points, ortho_points] = cpselect(Image_base,Image_input, 'Wait', true);
tform = cp2tform(image_points,ortho_points, 'affine');
new=imtransform(Image_input,tform);
Quand j'exécute le programme, il m'ouvre "control point selection tool". Je prends plusieurs points sur les 2 pieds puis après je ne sais pas quoi faire ?!! Et j'ai ce message d'erreur :

Citation:
??? Error using ==> cp2tform at 162
At least 3 points needed to infer affine transform.

Error in ==> projet at 34
tform = cp2tform(image_points,ortho_points, 'affine');
J'ai parcouru le forum mais je n'ai pas trouvé la solution. J'espère avoir été assez clair, n'hésitez pas à me poser des questions où à me demander d'autres imprim écran si vous le souhaitez.

Cordialement,
arkenge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 17h30   #2
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
Bonjour,

Citation:
Envoyé par arkenge Voir le message
il m'ouvre "control point selection tool". Je prends plusieurs points sur les 2 pieds
Tu n'en prends pas assez, et c'est ce que te dit l'erreur:
Au moins 3 (paires de) points requis pour déduire la transformation affine.
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/02/2012, 20h38   #3
Invité de passage
 
Inscription : février 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 3
Points : 0
Points : 0
Bonsoir,

Tout d'abord merci pour ta réponse.

J'ai essayé les différents types que propose cp2tform; affine, lwm, polynomial etc.. Sur l'interface du control point selection tool, j'ai pris jusqu'à 200 points (100 sur chaque photo) et j'avais toujours la même erreur. Une fois que j'ai sélection tous mes points je veux les enregistrer mais quand je mets " 'Wait', true " et que je vais dans File je peux juste fermer la fenêtre.

Mes images sont en niveau de gris, est ce que ça pose problème à cp2tform ? Dois-je les laisser les RGB ?

Sans " 'Wait', true " je peux enregistrer des valeurs mais je ne sais pas quoi en faire.. Quoi que j'essaye, je n'arrive pas à afficher new.

Cordialement.
arkenge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 14h44   #4
Modérateur
 
Avatar de Winjerome
 
Homme Jérôme
Inscription : septembre 2009
Messages : 3 598
Détails du profil
Informations personnelles :
Nom : Homme Jérôme
Âge : 24
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : septembre 2009
Messages : 3 598
Points : 6 824
Points : 6 824
Laisse 'Wait' à true et ferme simplement la fenêtre lorsque tu as fini ta sélection

Citation:
Envoyé par arkenge Voir le message
j'ai pris jusqu'à 200 points
Tu as de la patience!

Citation:
Envoyé par arkenge Voir le message
Mes images sont en niveau de gris, est ce que ça pose problème à cp2tform ? Dois-je les laisser les RGB ?
Non aucun problème:
Citation:
Envoyé par doc cpselect
input and base can be either variables that contain grayscale, truecolor, or binary images, or strings that identify files containing these images
__________________
Débutant en MATLAB? Vous voulez faire une Interface Graphique? Les Tutoriels et la FAQ sont là pour vous aider
Une erreur? FAQ : Messages d'erreur et avertissements
"Ça ne marche pas" n'est pas une réponse acceptable Expliquez clairement votre problème (erreurs, résultats non attendus...).
Citation:
En essayant continuellement on finit par réussir. Donc: plus ça rate, plus on a de chance que ça marche. - Jacques Rouxel
L'expérience, c'est le nom que chacun donne à ses erreurs - Oscar Wilde
Je suis régulièrement sur le chat DVP - Pas de question technique par MP, Merci
Winjerome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 20h18   #5
Invité de passage
 
Inscription : février 2012
Messages : 3
Détails du profil
Informations forums :
Inscription : février 2012
Messages : 3
Points : 0
Points : 0
Bonsoir,

Merci de ton aide.

Citation:
Envoyé par Winjerome Voir le message
Laisse 'Wait' à true et ferme simplement la fenêtre lorsque tu as fini ta sélection
Lorsque je ferme la fenêtre, le message d'erreur présenté ci-dessus apparaît. Je ne comprends pas pourquoi il m'indique ne pas avoir assez de points :/

En fait, je veux juste recaler mes images l'une sur l'autre pour pouvoir observer les différences. Existe il une autre méthode que celle utilisée ?
arkenge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 09h13   #6
Nouveau Membre du Club
 
Inscription : novembre 2011
Messages : 60
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 60
Points : 26
Points : 26
Bonjour

je pense que tu peux calculer les distances entre les points de chaque image, autrement dit chercher le point de I2 le plus proche du point I1

avec I1 et I2 les deux images de la division
math_infomatique est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h45.


 
 
 
 
Partenaires

Hébergement Web