cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows() cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows()
除了下面的代码片段,我以相同的方式工作
def show(): cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows() thread = threading.Thread(target = show) thread.start() thread.join() cv2.imshow('image',img) cv2.waitKey(0) cv2.destroyAllWindows()
但是第二个
imshow
语句似乎存在某种问题。我使用打印语句来发现程序在第二个imshow
语句处冻结。谁能告诉我为什么会这样吗?
我在互联网上发现了很少的类似问题,并且大多数人说cv2.imshow
应该仅与主线程一起使用。我猜cv2.imshow仅适用于一个线程,无论是主线程还是您创建的任何其他线程。在任何其他线程中调用此方法将冻结执行。
下面的代码片段在另一个cv2.imshow('image',img)cv2.waitKey(0)cv2.destroyAllWindows()cv2.imshow('image',img)cv2.waitKey(0)之后显示同一图像cv2.destroyAllWindows()我除外...
关于Open CV的官方文档: