我是一年级的学生,我只知道一点蟒蛇。对于一个项目,我需要使用OpenCV来检测几个交通标志。我在网上搜索了一下,我决定使用Haar-Cascade分类器。我按照本教程:haar-cascade
我训练了这个标志的代码left-sign到目前为止一切都很好。然而,我的代码(用3000正面1500负jpgs和完成8阶段训练)检测到右和左标志。代码需要单独识别右侧和左侧标志,因为我的目标是命令我的机器人向左转或向右转。
这是我的代码:
import numpy as np
import cv2
ok_cascade = cv2.CascadeClassifier('new_kocum.xml')
cap = cv2.VideoCapture(0)
while 1:
ret, img = cap.read()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
oks = ok_cascade.detectMultiScale(gray,3,5)
for (x,y,w,h) in oks:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,255,0),2)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img,'ok',(x-w,y-h), font, 0.5, (11,255,255), 2, cv2.LINE_AA)
cv2.imshow('img',img)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
这是正确的标志:right-sign
所以我的问题是:是否可以通过更改代码来解决这个问题?如果更容易,我应该使用哪种方法来检测这些迹象?