cv2.error: Unknown C++ exception from OpenCV code
cv2.error: Unknown C++ exception from OpenCV code
我无法在 python
中 运行 cv2 .read()
每次我 运行 一个简单的代码只是为了从我的网络摄像头看到我自己。它给出了一个我无法解决的奇怪错误,我几乎已经搜索了很多。
我只想通过网络摄像头捕捉我的视频。
这是我的代码,对我来说可能没问题。
import cv2
vid = cv2.VideoCapture(0)
while True:
_, frame = vid.read()
# Display the resulting frame
cv2.imshow('my_frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
vid.release()
cv2.destroyAllWindows()
每次我 运行 这段代码都会给出以下错误 -
_, frame = vid.read()
cv2.error: Unknown C++ exception from OpenCV code
我不知道如何解决这个问题。我在整个平台上搜索了很多。
edit:我认为我的网络摄像头工作正常,因为当我执行代码 运行s 并打开 window 并显示来自网络摄像头的图像时,图像是灰色的并且可以正常工作只有一两秒钟。它立即显示错误。
我的pip版本是21.1.1。
软件包列表 -
Package Version
--------------------- --------
numpy 1.20.3
opencv-contrib-python 4.5.2.52
Pillow 8.2.0
pip 21.1.1
pywin32 300
setuptools 56.2.0
谢谢
备注:
- 前两行没有错误。
- 第三行,(_,)处,不管下划线多少,2、3、4,还是报同样的错误。
- 用 return 关键字替换 (_,) 会带出错误。
- 用
open()
包含 cv2.VideoCapture(0)
仍然会出错。
- 即使卸载并重新安装 OpenCV,在 opencv-python 4.5.2.52.
中仍然如此
- 子行“ret”在该脚本中不起作用。
- 用return关键字替换(_,)仍然会出错。
- 删除 (_,) 仍然会出现同样的错误。
cv2
可以很好地显示已拍摄的照片,但不能在代码行中实时显示(不知何故)。
- 一些教程,尽管更新了日期,但它们的代码在 (ret/s/etc.), frame = (cap/vid).read()[=64= 之后不起作用]
- 用 open() 封闭第一个变量赋值将进入更多错误的字段。
如果是这样,并且有人 tutorial 说 vid.read()
将 return 一个元组,那么就存在偏差。 print(vid)
会 return 类似于 <VideoCapture 02D32370>
.
使用文本文件,如
file=open('C:\Users\username\Documents\New folder\abcdefghijklmnopqrstuvw.txt')
和print(file)
,它returns
<_io.TextIOWrapper name='C:\Users\username\Documents\New folder\abcdefghijklmnopqrstuvw.txt' mode='r' encoding='cp1252'>
在 text=file.read()
和 print(text
之前)。
OpenCV 在我的计算机上可以很好地显示静态图像,但不能在一组(视频)中记录一系列图像。
- 在我的电脑上,除了使用其他模块之外别无他法。
编辑:
尽管我上面说了,您需要将 videocapture
中的 0
替换为 0+cv2.CAP_DSHOW
,这基本上转化为索引差异 (n) 加上默认相机索引号。
尝试替换此行:
vid = cv2.VideoCapture(0)
和
vid = cv2.VideoCapture(0, cv2.CAP_DSHOW)
我无法在 python
中 运行 cv2 .read()每次我 运行 一个简单的代码只是为了从我的网络摄像头看到我自己。它给出了一个我无法解决的奇怪错误,我几乎已经搜索了很多。 我只想通过网络摄像头捕捉我的视频。
这是我的代码,对我来说可能没问题。
import cv2
vid = cv2.VideoCapture(0)
while True:
_, frame = vid.read()
# Display the resulting frame
cv2.imshow('my_frame', frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
vid.release()
cv2.destroyAllWindows()
每次我 运行 这段代码都会给出以下错误 -
_, frame = vid.read()
cv2.error: Unknown C++ exception from OpenCV code
我不知道如何解决这个问题。我在整个平台上搜索了很多。
edit:我认为我的网络摄像头工作正常,因为当我执行代码 运行s 并打开 window 并显示来自网络摄像头的图像时,图像是灰色的并且可以正常工作只有一两秒钟。它立即显示错误。
我的pip版本是21.1.1。 软件包列表 -
Package Version
--------------------- --------
numpy 1.20.3
opencv-contrib-python 4.5.2.52
Pillow 8.2.0
pip 21.1.1
pywin32 300
setuptools 56.2.0
谢谢
备注:
- 前两行没有错误。
- 第三行,(_,)处,不管下划线多少,2、3、4,还是报同样的错误。
- 用 return 关键字替换 (_,) 会带出错误。
- 用
open()
包含cv2.VideoCapture(0)
仍然会出错。 - 即使卸载并重新安装 OpenCV,在 opencv-python 4.5.2.52. 中仍然如此
- 子行“ret”在该脚本中不起作用。
- 用return关键字替换(_,)仍然会出错。
- 删除 (_,) 仍然会出现同样的错误。
cv2
可以很好地显示已拍摄的照片,但不能在代码行中实时显示(不知何故)。- 一些教程,尽管更新了日期,但它们的代码在 (ret/s/etc.), frame = (cap/vid).read()[=64= 之后不起作用]
- 用 open() 封闭第一个变量赋值将进入更多错误的字段。
如果是这样,并且有人 tutorial 说 vid.read()
将 return 一个元组,那么就存在偏差。 print(vid)
会 return 类似于 <VideoCapture 02D32370>
.
使用文本文件,如
file=open('C:\Users\username\Documents\New folder\abcdefghijklmnopqrstuvw.txt')
和print(file)
,它returns
<_io.TextIOWrapper name='C:\Users\username\Documents\New folder\abcdefghijklmnopqrstuvw.txt' mode='r' encoding='cp1252'>
在 text=file.read()
和 print(text
之前)。
OpenCV 在我的计算机上可以很好地显示静态图像,但不能在一组(视频)中记录一系列图像。
- 在我的电脑上,除了使用其他模块之外别无他法。
编辑:
尽管我上面说了,您需要将 videocapture
中的 0
替换为 0+cv2.CAP_DSHOW
,这基本上转化为索引差异 (n) 加上默认相机索引号。
尝试替换此行:
vid = cv2.VideoCapture(0)
和
vid = cv2.VideoCapture(0, cv2.CAP_DSHOW)