Как обнаружить несколько цветов, отличных от определенного цвета, при обработке изображений с помощью Python с использованием openCV? - PullRequest
0 голосов
/ 08 мая 2018

Я пытался одновременно определить несколько цветов в видео, поэтому я создал код, включающий трекбар, для настройки значений hsv. Вот код:

import numpy as np
import cv2
def nothing(x):
    pass
cap = cv2.VideoCapture(0)
cv2.namedWindow('image')
cv2.createTrackbar('lh','image',0,180,nothing)
cv2.createTrackbar('ls','image',0,255,nothing)
cv2.createTrackbar('lv','image',0,255,nothing)
cv2.createTrackbar('hh','image',0,180,nothing)
cv2.createTrackbar('hs','image',0,255,nothing)
cv2.createTrackbar('hv','image',0,255,nothing)
while(True):
    ret, img = cap.read()
    hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)
    lh = cv2.getTrackbarPos('lh','image')
    ls = cv2.getTrackbarPos('ls','image')
    lv = cv2.getTrackbarPos('lv','image')
    hh = cv2.getTrackbarPos('hh','image')
    hs = cv2.getTrackbarPos('hs','image')
    hv = cv2.getTrackbarPos('lv','image')
    lr = np.array([lh,ls,lv])
    hr = np.array([hh,hs,hv])
    mask = cv2.inRange(hsv,lr,hr)
    res = cv2.bitwise_and(img,img,mask = mask)
    cv2.imshow('image',res)
    if(cv2.waitKey(1)&0xFF==ord(' ')):
        break
cap.release()    
cv2.destroyAllWindows()

Проблема, с которой я здесь столкнулся, заключается в том, что при запуске этой программы все, что я вижу, это черный экран. Несмотря на то, что я переместил трекбары, он все еще показывал черный экран. Но когда я попытался запустить эту программу, удалив трекбары для более высокого диапазона, указав диапазон в самом коде для определенного цвета, с которым он работал.

Например, я изменил код:

hr = np.array([120,255,255])
mask = cv2.inRange(hsv,lr,hr)

Как я могу заставить этот код работать для всех цветов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...