【问题标题】:cv2 imshow doesnt open window again after closing and opening again, when used with threads与线程一起使用时,cv2 imshow 在关闭并再次打开后不再打开窗口
【发布时间】:2018-12-30 16:56:48
【问题描述】:

在下面的示例代码中,

import cv2
from threading import Thread

class Person_Item_Association(object):
    def __init__(self):
        self.stop = False

    def start_camera(self):
        self.stop =False
        camera_thread = Thread(target=self.start_analysis)
        camera_thread.start()

    def stop_camera(self):
        self.stop = True

    def start_analysis(self):
        cap = cv2.VideoCapture(0)

        while not self.stop:
            ret,image = cap.read()
            cv2.imshow("frame",image)
            cv2.waitKey(1)

        cap.release()
        print("resource released")
        cv2.destroyAllWindows()

我执行以下顺序, 调用 obj.start_camera(), obj.stop_camera(), cv2.imshow() 打开一个窗口, 但是当我再次执行 obj.start_camera() 和 obj.stop_camera() 时,它不会打开一个窗口。 这里有什么问题?

【问题讨论】:

  • 你找到解决办法了吗?

标签: python python-3.x multithreading opencv3.0 cv2


【解决方案1】:

您可以使用multiprocessing 模块而不是threading 模块来缓解此问题。 但我仍然无法找到如何使用threading 解决此问题。

看看类似的question

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多