Ask Your Question
0

I am trying to run yolo in opencv using darknet on cpu code works fine but not getting camera displayed.[Solved]

asked 2019-12-13 03:34:52 -0500

Fahad Ahmed gravatar image

updated 2019-12-13 13:47:55 -0500

supra56 gravatar image

code is here you guys can see`

import cv2
from darkflow.net.build import TFNet
import numpy as np
import time

option= {
    'model':'cfg/yolo.cfg',
    'load':'bin/yolov2.weights',
    'threshold': 0.13,
    }
tfnet=TFNet(option)
#camera_port=0
capture=cv2.VideoCapture(0)
colors =[tuple(255*np.random.rand(3)) for i in range(5)]
while (capture.isOpened()):
    stime=time.time()
    ret,frame=capture.read()
    result=tfnet.return_predict(frame)
    if ret:
        for colors,result in zip (colors,result):
            tl= (result['topleft']['x'],result['topleft']['y'])
            br =(result['bottomright']['x'],result['bottomright']['y'])
            label = result['label']
            frame=cv2.rectangle(frame,tl,br,(0,255,0),7)
            frame =cv2.putText(frame,label,br,cv2.FONT_HERSHEY_COMPLEX, 10,(0,0,0),2)
        cv2.imshow('frame',frame)
        print('FPS{:.1f}'.format(1/(time.time() -stime)))
        if cv2.waitKey(1)& 0xff ==ord('q'):
            break
        else:
            capture.release()
            cv2.destroyAllWindows()
            break

`error is

[ WARN:0] global C:\projects\opencv-python\opencv\modules\videoio\src\cap_msmf.cpp (674) SourceReaderCB::~SourceReaderCB terminating async callback
edit retag flag offensive close merge delete

Comments

try dshow instead of the default msmf backend:

capture=cv2.VideoCapture(0, cv2.CAP_DSHOW)
berak gravatar imageberak ( 2019-12-13 03:38:05 -0500 )edit

just tried but getting same error the window pops up for a second and them closed automatically.

Fahad Ahmed gravatar imageFahad Ahmed ( 2019-12-13 03:42:06 -0500 )edit

1 answer

Sort by ยป oldest newest most voted
1

answered 2019-12-13 09:25:30 -0500

supra56 gravatar image

updated 2019-12-13 13:41:21 -0500

Put this outside of while loop condition block.

video_capture.release()
cv2.destroyAllWindows()
edit flag offensive delete link more

Comments

thanks it worked :)

Fahad Ahmed gravatar imageFahad Ahmed ( 2019-12-13 09:27:19 -0500 )edit
Login/Signup to Answer

Question Tools

1 follower

Stats

Asked: 2019-12-13 03:34:52 -0500

Seen: 208 times

Last updated: Dec 13 '19