[英]cv2 VideoCapture hangs flask server on startup
Flask 服務器在啟動時掛起(並且不提供任何頁面)。 發生這種情況是因為試圖在 class 中初始化 OpenCV VideoCapture:
我有一個LaptopCamera
初始化筆記本電腦攝像頭的 LaptopCamera class:
class LaptopCamera:
def __init__(self):
self.video = cv2.VideoCapture(0)
self.video.set(cv2.CAP_PROP_FRAME_WIDTH, 1920)
self.video.set(cv2.CAP_PROP_FRAME_HEIGHT, 1080)
self.video.set(cv2.CAP_PROP_FPS, 60)
self.video.set(cv2.CAP_PROP_BUFFERSIZE, 1)
def single_image(self):
"""return jpeg image of frame"""
ret, jpeg = cv2.imencode('.jpeg', self.read_video())
return jpeg.tobytes()
然后在 flask 服務器中使用,如下所示:
@API.route('/picture.jpeg')
def provide_jpeg():
cam.read_video()
return Response(cam.single_image(), mimetype='image/jpeg')
cam = LaptopCamera()
if __name__ == '__main__':
tankyAPI.run(HOST, PORT, debug=True)
如果我首先評論cam = LaptopCamera()
,啟動服務器,取消注釋cam = LaptopCamera()
並等待它重新加載它就可以了。
我想知道為什么會這樣? 我怎么能找到解決方案?
在開發我的應用程序時,我也有類似的經歷。 我的解決方案是刪除所有庫,創建一個新環境,然后重新安裝所有庫。 它在 Ubuntu 18 上,CV2 和其他 python 模塊之間存在一些不同的系統庫,所以解決我的問題的最簡單方法是從頭開始並重新安裝每個庫。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.