OpenCV TypeError:参数'src'的预期cv :: UMat - 这是什么?

问题描述 投票:2回答:3

免责声明:巨大的openCV菜鸟

Traceback(最近一次调用最后一次):

文件“lanes2.py”,第22行,in

canny = canny(lane_image)

在canny中输入“lanes2.py”,第5行

gray = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)

TypeError:参数'src'的预期cv :: UMat

究竟是什么'src'指的是什么?

python opencv typeerror src
3个回答
2
投票
gray = cv2.cvtColor(cv2.UMat(imgUMat), cv2.COLOR_RGB2GRAY)

UMat是Transparent API (TAPI)的一部分,而不是帮助为CPU和OpenCL实现编写一个代码。


2
投票

srccv2.cvtColor的第一个论据。

你得到的错误是因为它不是正确的形式。 cv2.Umat()在功能上等同于np.float32(),因此您的最后一行代码应为:

gray = (np.float32(imgUMat), cv2.COLOR_RGB2GRAY)

1
投票

canny是你自己的功能吗?你在里面使用OpenCV的Canny吗?如果是,请检查您是否为Canny提供了合适的参数 - 首先Canny参数应符合以下条件:

  • 类型:<type 'numpy.ndarray'>
  • dtype:dtype('uint8')
  • 单通道或简单:灰度,即2D阵列,即其shape应为tuples的2-inttuple正好包含2个整数)

您可以分别打印来检查它

type(variable_name)
variable_name.dtype
variable_name.shape

variable_name替换为您作为Canny的第一个参数提供的变量名称。

© www.soinside.com 2019 - 2024. All rights reserved.