получить доступ к смоделированной веб-камере (с помощью opencv и flask) с помощью opencv в Ubuntu - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь смоделировать IP-камеру с локальной USB-камеры, используя opencv и flask на примере flask basi * из 1017 *:

 ...
 return Response(gen(),mimetype='multipart/x-mixed-replace; boundary=--jpgboundary')
 ...
 frame = cap.read()
 ...
 yield (b'--jpgboundary\r\n'+
        b'Content-Type: image/jpeg\r\n'+
        b'Content-Length: '+bytes(str(len(jpegEncodedImage)),'utf-8')+
        b'\r\n\r\n' + jpegEncodedImage + b'\r\n')
...

Я могу получить доступ к этому потоку с помощью веб-браузера http://myip:5000/video_feed. Я также могу получить доступ к этой моделируемой ip-камере на windows 10 с python 3.7.7, используя:

...
print("connect to camera at %s ..." % (ipAddressWithPort))
cap = None
while cap is None:
try: 
  cap = cv2.VideoCapture(ipAddressWithPort,cv2.CAP_IMAGES)
  time.sleep(2)
except:
  print("could not connect to %s:%s ... retry ..." % (host,port))
  cap = None
  time.sleep(1)

print("successfully connected to camera at %s (%s) ..." % (ipAddressWithPort,cap))
...
ret, frame = cap.read()
try:
  cv2.imshow('frame',frame)
except Exception as e:
  print("ret = %s (%s,%s) ... " % (ret,frame,str(e)))
  time.sleep(1)
...

В моей системе Ubuntu я использую python 3.6.9. Запуск cap = cv2.VideoCapture("http://"+host+":"+port+"/video_feed") приводит к следующему сообщению (об ошибке):

connect to camera at http://myip:5000/video_feed ... 
[ERROR:0] global /io/opencv/modules/videoio/src/cap.cpp (116) open VIDEOIO(CV_IMAGES): raised OpenCV exception:

OpenCV(4.2.0) /io/opencv/modules/videoio/src/cap_images.cpp:253: error: (-5:Bad argument) CAP_IMAGES: can't find starting number (in the name of file): http://myip:5000/video_feed in function 'icvExtractPattern'


successfully connected to camera at http://myip:5000/video_feed (<VideoCapture 0x7fd8a9835d30>) ...
ret = False (None) ... 
ret = False (None) ... 

Что я могу сделать, чтобы код работал в Ubuntu?

В основном я установил flask и opencv включен обе системы.

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