1 | initial version |
There is nothing wrong with your code. I will fix for you to get better result for Canny.
Because I'm using 4K UHD monitor. You can select range between 100 to 250 or slightly lower or higher for 1080P. The values for red is right colour. But depending on various red colour.
import cv2
import numpy as np
cap = cv2.VideoCapture(0)
while True:
_, frame = cap.read()
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
lower_red = np.array([0, 0, 220])
upper_red = np.array([180, 255, 255])
mask = cv2.inRange(hsv, lower_red, upper_red)
res = cv2.bitwise_and(frame, frame, mask= mask)
edges = cv2.Canny(frame, 125, 200)
cv2.imshow('Edges', edges)
cv2.imshow('Original', frame)
cv2.imshow('Red', res)
k = cv2.waitKey(5)
if k == 27:
break
cv2.destroyAllWindows()
cap.release()