Raspberry pi 3 код не работает - PullRequest
0 голосов
/ 21 мая 2018

Вот код, который не генерирует никаких ошибок, но он не работает, а я не знаю.Я работаю над Raspberry Pi 3 для обнаружения объектов.

min_match_count =30

detector = cv2.xfeatures2d.SIFT_create()

FLANN_INDEX_KDTREE=0

flannparam=dict(algorithm=FLANN_INDEX_KDTREE,tree=5)

search=dict(checks=50)

flann=cv2.FlannBasedMatcher(flannparam,search)

trainimg=cv2.imread('/home/pi/Downloads/img1.jpg',0)

trainkp,traindecs=detector.detectAndCompute(trainimg,None)

cam=PiCamera()

cam.resolution=(480,480)

cam.framerate = 40

r_cap =PiRGBArray(cam)

for frm in cam.capture_continuous(r_cap,format = 'bgr', use_video_port = True):

    QueImg = frm.array

    gry=cv2.cvtColor(QueImg,cv2.COLOR_BGR2GRAY)

    quekp,quedecs=detector.detectAndCompute(gry,None)

    matches= flann.knnMatch(quedecs,traindecs,k=2)

    goodmatch=[]

    for (m,n) in matches:
        print('after whi')
        if(m.distance<0.75*n.distance):
            goodmatch.append(m)
    if(len(goodmatch)>min_match_count):
        tp={}
        qp={}
        for m in goodmatch:
            tp.append(trainkp[m.trainIdx].pt)
            qp.append(quekp[m.queIdx].pt)
        tp,qp=np.float32((tp,qp))
        H,status=cv2.findHomography(tp,qp,cv2.RANSAC,3.0)
        h,w=trainimg.shape
        trainingborder=np.float32([[[0,0],[0,h-1],[w-1,h-1],[0,h-1]]])
        queborder=cv2.perspectiveTransform(trainingborder,H)
        cv2.polylines(QueImg,[np.int32(queborder)],True,(0,255,0),5)    
    else:
        print('Not enough matches - %d/%d'%(len(goodmatch),min_match_count))

    cv2.imshow('result',QueImg)
    r_cap.truncate(0)



cam.release()
cv2.destroyAllWindows()

любые ресурсы высоко ценятся Заранее спасибо

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