如何在没有键盘反馈的情况下使用 OpenCV imshow 循环显示最新图像

How do can I use OpenCV imshow to display the most recent image in a loop without keyboard feedback

我 运行 在 Python 中使用 OpenCV 进行图像处理循环,我想在我的 imshow window 中显示最新的图像掩码。因此,每当循环计算出新掩码时,它都会更新 imshow window(大约 6Hz)。但是,如果不等待键盘中断,我无法获得 imshow 到 return 的控制权。有什么建议么?是否有更好的库可以用于此?

你可以做的是将图像记录到循环目录中的一个文件夹中,如果实时显示图像不是完全必要的话。

cv2.imwrite('image_logs/image_' + str(image_count) + '.jpeg', image)

比如。使用计数器可以轻松跟踪图像。

您也可以使用 waitkey - 它会延迟括号中的毫秒数。有时我对此有问题(我使用 rpi,相当慢!)所以我倾向于选择日志记录选项。

cv2.waitKey(50) #wait for 50ms

没有代码,这是一个猜测。但是!

我想您目前正在使用 cv2.waitKey 等待键盘输入:

cv2.waitKey(33)
if k==27:    # Esc key to stop
    break

您需要做的是使用 cv2.waitKey 等待设定的时间,比如 1 毫秒。

# Wait 1 milliseconds. Specifying 0 means forever, so we don't want that
cv2.waitKey(1)