Maison > développement back-end > C++ > le corps du texte

Comment améliorer la précision de la détection des objets rouges dans l'espace colorimétrique HSV avec OpenCV ?

Linda Hamilton
Libérer: 2024-11-15 04:43:02
original
938 Les gens l'ont consulté

How to Improve Red Object Detection Accuracy in HSV Color Space with OpenCV?

Détection optimisée des objets de l'espace colorimétrique HSV avec OpenCV

Problème :

Étant donné une image contenant un rectangle rouge, la tâche est d'améliorer la précision de détection de la couleur rouge à l'aide de la méthode cv::inRange d'OpenCV dans l'espace colorimétrique HSV.

Approche originale :

int H_MIN = 0;
int H_MAX = 10;
int S_MIN = 70; 
int S_MAX = 255;
int V_MIN = 50;
int V_MAX = 255;

cv::inRange( imageHSV, cv::Scalar( H_MIN, S_MIN, V_MIN ), cv::Scalar( H_MAX, S_MAX, V_MAX ), imgThreshold0 );
Copier après la connexion

Cette approche fournit résultats insatisfaisants.

Solution améliorée :

L'approche originale ne tient pas compte de « l'enveloppement » de la couleur rouge à environ 180 degrés dans l'espace HSV. Pour résoudre ce problème, la plage H doit inclure à la fois [0,10] et [170, 180].

inRange(hsv, Scalar(0, 70, 50), Scalar(10, 255, 255), mask1);
inRange(hsv, Scalar(170, 70, 50), Scalar(180, 255, 255), mask2);

Mat1b mask = mask1 | mask2;
Copier après la connexion

Cette approche mise à jour donne des résultats de détection améliorés.

Alternative Approche :

Une autre méthode efficace consiste à :

  1. Inverser l'image BGR.
  2. Convertir en HSV.
  3. Rechercher le cyan couleur.
Mat3b bgr_inv = ~bgr;
inRange(hsv_inv, Scalar(90 - 10, 70, 50), Scalar(90 + 10, 255, 255), mask); // Cyan is 90
Copier après la connexion

Cette approche alternative fournit une vérification de plage unique et produit des résultats satisfaisants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal