Bonjour à tous,
Actuellement je m'amuse un peu avec la détection de contours sur une image, et j'en suis arrivé à utiliser la fonction contourf qui permet d'afficher à la fois les contours mais aussi de remplir les zones à l'intérieur de ces contours.
Les résultats sont très intéressants, cependant j'ai un petit soucis au niveau de l'exportation des résultat.
En effet je souhaiterai stocker l'image résultat que me donne contourf dans une matrice 2d. En somme, cela revient à avoir une image segmentée. Je ne cherche pas à avoir une image au format .png en sortie mais bel et bien une matrice 2D.
Ma question est la suivante : est il possible (à partir de la contour matrix) de remplir une matrice 2D (image) ?
J'ai éssayé d'utiliser une fonction trouvée sur le FEX qui permet de convertir la contour matrice en position xyz (ou xy représente les coordonnées dans la matrice 2D et z étant la valeur à attribuer à la case de la matrice), cependant les résultats ne sont pas les mêmes que l'image affichée par contourf.
et le lien vers la fonction C2xyz
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 img = rand(100); [C,h] = contourf(img(end:-1:1,:),2); [x_cell,y_cell,z] = C2xyz(C); z = z./z(2); img_contour = zeros(size(img)); for ii = 2:length(x_cell) y = size(img,1) - floor(y_cell{ii}) + 1; x = floor(x_cell{ii}); y(isnan(x)) = []; x(isnan(x)) = []; img_contour(y,x) = z(ii); end figure imagesc(img_contour)
En espérant avoir été assez clair, merci d'avance à celui qui pourra m'aider
Alex
Partager