如何解决颜色检测输出的颜色不是检测到的颜色
我正在将OpenCV与HSV颜色模型一起使用以检测颜色。检测颜色不是问题,但是我要实现的是输出除检测到的颜色以外的其他颜色。
例如,如果我能够检测到橙色,则希望输出的内容涵盖场景中除橙色以外的所有颜色。
这是我用来检测颜色的代码:
import cv2
import numpy as np
cap = cv2.VideoCapture(1)
def empty(a):
pass
# create a windows for trackbar
cv2.namedWindow("HSV")
cv2.resizeWindow("HSV",700,300)
cv2.createTrackbar("HUE Min","HSV",179,empty)
cv2.createTrackbar("HUE Max",empty)
cv2.createTrackbar("SAT Min",255,empty)
cv2.createTrackbar("SAT Max",empty)
cv2.createTrackbar("VAL Min",empty)
cv2.createTrackbar("VAL Max",empty)
while True:
_,frame = cap.read()
frameHSV = cv2.cvtColor(frame,cv2.COLOR_BGR2HSV)
hue_min = cv2.getTrackbarPos("HUE Min","HSV")
hue_max = cv2.getTrackbarPos("HUE Max","HSV")
sat_min = cv2.getTrackbarPos("SAT Min","HSV")
sat_max = cv2.getTrackbarPos("SAT Max","HSV")
val_min = cv2.getTrackbarPos("VAL Min","HSV")
val_max = cv2.getTrackbarPos("VAL Max","HSV")
lower = np.array([hue_min,sat_min,val_min])
upper = np.array([hue_max,sat_max,val_max])
mask = cv2.inRange(frameHSV,lower,upper)
result = cv2.bitwise_and(frame,frame,mask=mask)
cv2.imshow("Original",frame)
cv2.imshow("Mask",mask)
cv2.imshow("result",result)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
有什么建议吗?预先感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。