Я пытаюсь сделать белый контур (белые таблички автомобиля) внутри желтого контура (такси), но я даже не узнаю белый цвет этой таблички в HSV, как я могу решить эту проблему? В коде я использую трекбары, чтобы иметь возможность изменять значения RGB по моей воле.
Спасибо!
import cv2
import numpy as np
kernel = np.ones((5,5),np.uint8)
def dibujarblanco(maskblanco,color):
_,contornos,_=cv2.findContours(maskblanco,
cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)
for c in contornos:
area = cv2.contourArea(c)
if area > 200:
nuevocontorno = cv2.convexHull(c)
cv2.drawContours(frame, [nuevocontorno], 0, color,3)
def nothing(x):
pass
video = cv2.VideoCapture("taxismenor.mp4")
cv2.namedWindow("Barras Blanco")
cv2.createTrackbar("B", "Barras Blanco", 0, 255, nothing)
cv2.createTrackbar("G", "Barras Blanco", 0, 255, nothing)
cv2.createTrackbar("R", "Barras Blanco", 0, 255, nothing)
while(1):
_, frame=video.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
B = cv2.getTrackbarPos("B", "Barras Blanco")
G = cv2.getTrackbarPos("G", "Barras Blanco")
R = cv2.getTrackbarPos("R", "Barras Blanco")
blanco = np.uint8([[[B, G, R]]])
hsvBlanco = cv2.cvtColor(blanco,cv2.COLOR_BGR2HSV)
lowerLimitb = np.uint8([hsvBlanco[0][0][0]-10,100,100])
upperLimitb = np.uint8([hsvBlanco[0][0][0]+10,255,255])
maskblanco = cv2.inRange(hsv, lowerLimitb, upperLimitb)
dibujarblanco(maskblanco,(0,0,255))
cv2.imshow("frame", frame)
cv2.imshow("maskblanco", maskblanco)
key = cv2.waitKey(1)
if key == 27:
break
cv2.destroyAllWindows()
Это является результатом попытки набросать белый цвет пластин. Ничего, не работает.