Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python OpenCV灰度转换误差_Python_Opencv_Video - Fatal编程技术网

Python OpenCV灰度转换误差

Python OpenCV灰度转换误差,python,opencv,video,Python,Opencv,Video,我正在尝试在OpenCV中打开要处理的视频源文件。我将遵循此处给出的教程: 每次尝试打开要处理的.avi视频文件时,我都会收到以下错误: Traceback (most recent call last): File "C:\Users\Adam\Desktop\LastProjectAI\sources\samples\python2\lines.py", line 22, in <module> old_gray = cv2.cvtColor(old_fram

我正在尝试在OpenCV中打开要处理的视频源文件。我将遵循此处给出的教程:

每次尝试打开要处理的.avi视频文件时,我都会收到以下错误:

    Traceback (most recent call last):
  File "C:\Users\Adam\Desktop\LastProjectAI\sources\samples\python2\lines.py", line 22, in <module>
    old_gray = cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY)
error: ..\..\..\src\opencv\modules\imgproc\src\color.cpp:3402: error: (-215) scn == 3 || scn == 4
应注意以下几点:

  • 我在Windows8中使用Python编辑器空闲
  • 我试图加载的视频文件与Python文件直接位于同一个位置
我尝试了多个视频文件,但没有成功。有人有什么建议来解决这个错误吗

编辑:

我能够在从视频捕获对象读取帧后直接显示帧。但是,如果尝试在绘制轨迹的for循环之后加载帧,则会出现以下错误:

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /build/buildd/opencv-2.4.5+dfsg/modules/core/src/array.cpp, line 2482
Traceback (most recent call last):
  File "prac.py", line 55, in <module>
    cv2.imshow('frame2', frame)
cv2.error: /build/buildd/opencv-2.4.5+dfsg/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat
OpenCV错误:cvGetMat文件/build/buildd/OpenCV-2.4.5+dfsg/modules/core/src/array.cpp第2482行中的错误标志(参数或结构字段)(无法识别或不支持数组类型)
回溯(最近一次呼叫最后一次):
文件“prac.py”,第55行,在
cv2.imshow('frame2',frame)
cv2.error:/build/buildd/opencv-2.4.5+dfsg/modules/core/src/array.cpp:2482:error:(-206)函数cvGetMat中无法识别或不支持的数组类型

我认为该程序无法找到您的视频文件。无论何时尝试加载视频或图像文件,不要忘记设置
if条件
,以检查视频/图像是否已加载

如果帧数据为空
-->
打印“帧为空”

否则,为了确保视频中的帧已成功加载,您可以尝试在加载帧后立即显示该帧,但不要忘记在
imshow语句之后放置
waitKey(0)


首先,检查视频帧是否已加载,并告知我们。

我采纳了您的建议,并已将错误本地化(感谢您提供的提示)。帧变量似乎正在填充正确的数据,并且可以在读取视频捕获后直接显示。但是,如果我尝试在绘制轨迹的for循环之后显示帧,它会给我一个错误(请参阅后期编辑)。好的!!!你能准确地标出哪一行出错吗?您的
框架
可能未在该范围内声明,您使用的是哪个opencv版本?在opencv 2.x中,cv2.line()和cv2.circle()返回空值,因此只需从代码中删除“mask=”和“frame=”
OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /build/buildd/opencv-2.4.5+dfsg/modules/core/src/array.cpp, line 2482
Traceback (most recent call last):
  File "prac.py", line 55, in <module>
    cv2.imshow('frame2', frame)
cv2.error: /build/buildd/opencv-2.4.5+dfsg/modules/core/src/array.cpp:2482: error: (-206) Unrecognized or unsupported array type in function cvGetMat