Heim >Backend-Entwicklung >Python-Tutorial >Wie können HSV-Farbgrenzen für die Objekterkennung mithilfe von cv::inRange effektiv bestimmt werden?

Wie können HSV-Farbgrenzen für die Objekterkennung mithilfe von cv::inRange effektiv bestimmt werden?

Barbara Streisand
Barbara StreisandOriginal
2024-12-02 01:56:09533Durchsuche

How to Effectively Determine HSV Color Boundaries for Object Detection using cv::inRange?

Auswählen von Farbgrenzen für die Objekterkennung mit cv::inRange (OpenCV)

Bei Verwendung der cv::inRange-Funktion zur Farberkennung, Die Auswahl geeigneter oberer und unterer HSV-Grenzen ist von entscheidender Bedeutung. In diesem Artikel geht es um die Frage, wie diese Grenzen anhand einer bestimmten interessierenden Farbe effektiv bestimmt werden können.

Hintergrund

HSV (Hue, Saturation, Value) ist eine Farbe Raum, der üblicherweise in der Bildverarbeitung verwendet wird. Das HSV-Modell stellt Farben als drei Komponenten dar:

  • Farbton (H): Stellt den Farbton dar (z. B. Rot, Blau).
  • Sättigung (S): Misst die Menge an im Farbton vorhandene Farbe (0-1).
  • Wert (V): Stellt die Helligkeit der Farbe dar (0-255).

Grenzen auswählen

Die Bestimmung der richtigen HSV-Grenzen basiert auf der spezifischen erkannten Farbe. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Farbton bestimmen:

    • Verwenden Sie ein Farbauswahltool, um die HSV-Werte zu ermitteln das Objekt von Interesse.
    • Beachten Sie, dass je nach Objekt unterschiedliche Skalen für HSV-Werte verwendet werden können Anwendung.
  2. Farbtonbereich anpassen:

    • Berücksichtigen Sie leichte Farbtonschwankungen, indem Sie den Bereich um den identifizierten Wert anpassen .
    • Wenn der Farbton beispielsweise 22 (von 179) ist, ist ein Bereich von (11-33) könnte angemessen sein.
  3. Sättigung und Wertebereiche festlegen:

    • Verwenden Sie einen angemessenen Bereich für Sättigung (z. B. 50–255).
    • Wählen Sie für den Wert einen Bereich aus, der den Erwartungen entspricht Helligkeit des Objekts.
  4. Format berücksichtigen:

    • Stellen Sie sicher, dass die HSV-Konvertierung für Ihr Bildformat geeignet ist.
    • OpenCV verwendet beispielsweise BGR und nicht RGB für Bilder Darstellung.

Beispiel

Betrachten wir das Beispiel der Erkennung eines orangefarbenen Deckels in einem Bild.

  1. HSV Werte:

    • Mit einem Farbwähler erhalten wir einen HSV-Wert von (22, 59, 100).
  2. Angepasste Grenzen:

    • Farbtonbereich: (11-33)
    • Sättigungsbereich: (50-255)
    • Wertebereich: (50-255)
  3. Python-Code:

    import cv2
    import numpy as np
    
    ORANGE_MIN = np.array([11, 50, 50], np.uint8)
    ORANGE_MAX = np.array([33, 255, 255], np.uint8)
    
    # Read and convert image
    img = cv2.imread('image.png')
    hsv_img = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
    
    # Detect orange using inRange
    mask = cv2.inRange(hsv_img, ORANGE_MIN, ORANGE_MAX)
    # Display mask
    cv2.imshow('Mask', mask)
    cv2.waitKey(0)

Das obige ist der detaillierte Inhalt vonWie können HSV-Farbgrenzen für die Objekterkennung mithilfe von cv::inRange effektiv bestimmt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn