gpt4 book ai didi

python - OpenCV Python 断言失败

转载 作者:太空宇宙 更新时间:2023-11-03 22:46:05 25 4
gpt4 key购买 nike

我正在尝试在 macOS 10.12.6 上运行 opencv-python==3.3.0.10 以读取文件并在窗口中显示视频。我已经从这里复制了代码 http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_video_display/py_video_display.html ,“播放”文件中的视频部分。

代码可以正确运行并显示视频,但是在视频终止后它会中断程序,并出现以下错误:

Assertion failed: (ec == 0), function unlock, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/libcxx/libcxx-307.5/src/mutex.cpp, line 48.

有没有人知道是什么原因造成的?


为方便起见的代码片段(已编辑以在评论中包含一些建议)

cap = cv2.VideoCapture('vtest.avi')

while(True):
ret, frame = cap.read()

if not ret:
break

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break

cv2.destroyAllWindows()

最佳答案

从您的问题中不清楚,但您似乎遇到了视频完成播放而没有被中断的情况。我认为问题是当您到达 cap.release() 时,VideoCapture 对象已经关闭。我建议将对 release 的调用放在 if 语句的 break 内。

我没有时间进行实验,但我通常遵循以下模式:

reader = cv2.VideoCapture(<stuff>)
while True:
success, frame = reader.read()
if not success:
break

我不必在这些上下文中显式调用 release

关于python - OpenCV Python 断言失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47206902/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com