在下面的示例代码中,
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()时,它没有打开窗口。 这是怎么了?
答案 0 :(得分:0)
您可以使用multiprocessing
模块而不是threading
模块来缓解此问题。
但是我仍然找不到如何使用threading
解决此问题的方法。
看看类似的question。