OpenCV  ist eine Bibliothek von Programmierfunktionen, die hauptsächlich auf Computer Vision in Echtzeit abzielen.

In diesem Artikel werden wir sehen , wie die Objekte erhalten die gleichen Farbe in einem Bild. Wir können eine Farbe anhand der Folienleiste auswählen, die mit dem Befehl cv2 cv2.createTrackbar erstellt wird.

Erforderliche Bibliotheken:

OpenCV 
Numpy

Ansatz:

Zunächst müssen wir das Bild in unserem lokalen Ordner mit cv2.imread() lesen. Zum Filtern einer bestimmten Farbe wir zu konvertieren Bild müssen in HSV - Format , die Farbe ist, Sättigung , und den Wert und die Maske des Bildes mit cv2.inRange() durch untere und obere Grenze der Bereitstellung von RGB - Werte , die wir Filter wollte das gibt uns einen Schwarz weißes Bild, bei dem die Bilder mit der Farbe unserer Interessen in Weiß und die verbleibenden in Schwarz sind. Wir können die Bilder mit der angegebenen Farbe zurückbekommen, die wir durch die Trackbar gegeben haben, indem wir cv2 bitwise_and operation ausführen .

Code:

import cv2 
import numpy as np 
import matplotlib.pyplot as plt 
  
cap = cv2.VideoCapture(0) 
  
def nothing(x): 
    pass
  
cv2.namedWindow('Tracking') 
  
cv2.createTrackbar("LH", "Tracking", 
                   0, 255, nothing) 
cv2.createTrackbar("LS", "Tracking"
                   0, 255, nothing) 
cv2.createTrackbar("LV", "Tracking"
                   0, 255, nothing) 
cv2.createTrackbar("HH", "Tracking"
                   0, 255, nothing) 
cv2.createTrackbar("HS", "Tracking"
                   0, 255, nothing) 
cv2.createTrackbar("HV", "Tracking", 
                   0, 255, nothing) 
  
while True: 
    
    
    _, frame = cap.read() 
      
    
    hsv = cv2.cvtColor(frame,  
                       cv2.COLOR_BGR2HSV) 
      
    
    l_h = cv2.getTrackbarPos("LH", 
                             "Tracking") 
    
    l_s = cv2.getTrackbarPos("LS", 
                             "Tracking") 
    
    l_v = cv2.getTrackbarPos("LV"
                             "Tracking") 
    
    h_h = cv2.getTrackbarPos("HH"
                             "Tracking") 
    
    h_s = cv2.getTrackbarPos("HS", 
                             "Tracking") 
    
    h_v = cv2.getTrackbarPos("HV", 
                             "Tracking") 
    
    l_b = np.array([l_h, l_s, 
                    l_v]) 
    
    u_b = np.array([h_h, h_s, 
                    h_v]) 
    
    mask = cv2.inRange(hsv, l_b, 
                       u_b) 
    
    res = cv2.bitwise_and(frame,  
                          frame, mask = mask) 
      
    
    
    cv2.imshow('frame', frame) 
    cv2.imshow('mask', mask) 
    cv2.imshow('res', res) 
      
    
    k =  cv2.waitKey(1) 
      
    
    
    if k == 27: 
        break
          
cap.release() 
  
cv2.destroyAllWindows() 

Ausgabe:

Objekte gleicher Farbe erkennen