Bonjour


On dispose d'une image en noir et blanc.
On extrait cette ligne.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
I=imread('Lena.bmp');
% on utilise la fonction dither pour mettre l'image en noir et blanc
BW = dither(I); 
imshow(BW)
% on va extraire la premiére ligne par exemple 
BWLigne001 = BW(1,:);
On veut traiter l'image en éléminant l’excès du noir en suivant la règle suivante:
sur une ligne qui contient
00011000000000000011101............10011111
on souhaite la transformer comme ceci
00011000000100000011101............10011111

On a opter pour regionprops
on labélise ensuite la premiére ligne de l'image
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
L=bwlabel(BWLigne001);
stats = regionprops(L,'Area','Centroid');
 
%seuil correspond à la valeur à partir de laquelle on va effectuer une modification au niveau des centres de gravités
seuil=4; 
 
 
aireblanc= [stats.Area]; 
centredegravite = [stats.Centroid]

Ce qu'on souhaite faire c'est remplacer dans BW (l'image en noir et blanc) la valeur des centres de gravités modifiés.
Et le résultat final est BW

L'algorithme
LIRE L'image
EXPORTER L'image en noir et blanc
POUR Chaque Ligne de L'image Lena Faire (compteur nbrligne)
DETERMINER aireblanc et centredegravite
SI l'aire blanc> seuilmin
REMPLACER Le Centre de gravité de l'aire blanc associé par un pixel noir (valeur 0)
FIN SI
FIN POUR
ECRIRE le changement de valeurs de centre de gravité dans l'image BW.
ENRGEISTRER BW.
Je souhaite que vous m'aider au codage de la deuxiéme parti; l'algorithme est clair je crois.

Cordialement
Gilbert