Bonjour,

Je vous propose un nouvel élément à utiliser : Extraire toutes les régions d'une image

Ce script permet d'extraire toutes les régions d'une image à l'aide des fonctions bwlabel et regionprops:

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
22
23
24
25
26
27
28
img = imread('coins.png'); % lire l'image désirée pour extraire les régions
bw = im2bw(img); % conversion dans une image binaire - fonction im2bw
 
bw = ~bw;  % inversion des pixels (de l'image coins.png) blanc => noir et vice-versa
[labels, nbLabels] = bwlabel(bw);   % étiquetage des régions à l'aide de la fonction bwlabel
% region=1 et vide=0
figure, imshow(bw); % affichage image binaire
region_extrait = regionprops(labels,'BoundingBox'); % fonction regionprops pour extraire les régions
 
%% Méthode 1
for i=1:nbLabels
    coupe = imcrop(labels,region_extrait(i).BoundingBox);
    figure, imshow(coupe);
end
 
%%  Méthode 2
for i=1:nbLabels
    [r,c] = find(labels==i); % on sais la ligne et la colonne des pixels de la région
    n1 = labels(min(r):max(r),min(c):max(c)); % sélection de la ligne min et max pour la région
    disp(n1)
end
 
%%  Méthode 3
for i=1:nbLabels
    [r,c] = find(labels==i); % la ligne et la colonne des pixels de la région
    coupe2 = imcrop(labels,[min(c) min(r) max(c)-min(c) max(r)-min(r)]); % sélection de la ligne min et max pour la région
    disp(coupe2)
end