Récemment, un lecteur de ce blog ma demandé dans les commentaires de l’article reconnaissance de couleurs comment détecter une source lumineuse dans une image. C’est donc à cela que nous allons nous attaquer aujourd’hui !

Repères colorimétriques

Nous avions dans cet article utilisé le repère colorimétrique HSV et notamment la composante H (Hue). Cette composante représente les informations colorimétriques d’un pixel. L’avantage de ce repère colorimétrique est de pouvoir séparer la luminosité de la chrominance et c’est cet avantage que nous allons utiliser aujourd’hui.

Détection de sources lumineuses : Représentation du repère HSV
Représentation du repère HSV (source)

Comme nous pouvons le constater, si nous souhaitons détecter une source lumineuse dans une image, nous devons nous intéresser aux pixels ayant une valeur dans la composante V forte.

Détecter une source lumineuse dans une image

Pour le coup, la partie code de cet article sera assez courte.

import cv2
minV=240
maxV=255

Nous commençons donc par importer OpenCV, puis nous définissons deux seuils pour la composante V. minV sera utilisé pour la valeur minimal de la composante V et maxV sera la valeur maximale que l’on cherchera pour la composante V. Nous choisissons des valeurs haute et relativement proche afin de ne prendre en compte uniquement les pixels lumineux.

image=cv2.imread('image.jpg')
image_hsv=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)
ret,seuil = cv2.threshold(image_hsv[:,:,2],minV,maxV,cv2.THRESH_BINARY)	

Nous chargeons maintenant une image à la ligne 5. Puis, nous la convertissons dans le repère HSV ligne 6. Enfin, il ne nous reste plus qu’à appliquer le seuillage à la ligne 7.

cv2.imshow('image seuilee',seuil)
cv2.waitKey(0)

Enfin, nous affichons l’image seuillée aux lignes 9-10. Et nous pouvons alors voir le résultat de ce programme.

Ces trois images ont été traitées avec les mêmes seuils. Il peut être nécessaire de modifier ces seuils afin d’améliorer les résultats. Nous pouvons également remarquer, sur la dernière image, que de nombreuses sources lumineuses sont mise en avant. Il est possible, afin de ne détecter qu’une certaine source lumineuse, d’utiliser des informations colorimétriques (cf. détection de couleurs).


0 commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.