Introduction au traitement des images et à la stéréo-vision

Composante connexe

Définition

Les composantes connexes d'une image permet de regrouper les pixels de couleur identique et en contact dans l'image.

Pour deux pixels quelconques appartenant à la même composante connexe il existe un chemin reliant ces deux pixels et l'ensemble des pixels du chemin appartiennent à la composante connexe.

MéthodeEn python

Il faut seuiller l'image en ensuite extraire les composantes. Le résultat de l'extraction est une image où la valeur de chaque pixel est un nombre, égal à l'indice de la composante.

1
import numpy as np
2
import cv2 as cv
3
img = cv.imread('c:/temp/ocv_haribo.png',cv.IMREAD_GRAYSCALE)
4
fenetre = 'Image binaire OTSU'
5
cv.namedWindow(fenetre)
6
thresh,imgbin=cv.threshold(img,0,255,cv.THRESH_OTSU+cv.THRESH_BINARY_INV)
7
retval, labels, stats, centroids	=	cv.connectedComponentsWithStatsWithAlgorithm(	imgbin, 8, cv. CV_32S,cv.CCL_WU)
8
print (stats.shape[0])
9
print ( "Composante\txg\tyg)\t S ")
10
for i in range(0,stats.shape[0]-1):
11
	print ( i,"\t",centroids[i,0],"\t",centroids[i,1],"\t",stats[i,4])
12
13
palette = np.random.rand(256,1,3)*256
14
print (palette.shape)
15
palette = np.uint8(palette)
16
imgpf = labels & 0xFF	
17
imgpf =  np.uint8(imgpf)
18
dst	=	cv.applyColorMap(	imgpf, palette)	
19
cv.imshow(fenetre,imgbin)
20
cv.imshow("labels",dst)
21
print( 'Valeur seuil OTSU ', thresh)
22
cv.waitKey(0)
23
cv.destroyAllWindows()

Résultat du programme sur l'image OCV_Haribo.png

FondamentalMoments géométriques d'une composante connexe

Au premier ordre on peut remplacer la forme géométrique extraite après le seuillage par une ellipse. Les caractéristiques de cette ellipse sont calculées à l'aide des moments.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimerRéalisé avec Scenari (nouvelle fenêtre) modèle documentaire TechnOpale