簡體   English   中英

cv2 VideoCapture 在啟動時掛起 flask 服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM