Отказ от ответственности: большой новичок в openCV
Traceback (последний последний вызов):
File "lanes2.py", line 22, in
canny = canny(lane_image)
Файл "lanes2.py", строка 5, в canny
gray = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)
TypeError: Ожидается cv::UMat для аргумента 'src'
На что именно ссылается 'src'?
src
является первым аргументом для cv2.cvtColor
.
Ошибка, которую вы получаете, связана с тем, что это неправильная форма. cv2.Umat()
функционально эквивалентен np.float32()
, поэтому ваша последняя строка кода должна звучать так:
gray = (np.float32(imgUMat), cv2.COLOR_RGB2GRAY)
gray = cv2.cvtColor(cv2.UMat(imgUMat), cv2.COLOR_RGB2GRAY)
UMat является частью Transparent API (TAPI), чем помогает написать один код для реализации CPU и OpenCL.
Является ли canny
вашей собственной функцией? Используете ли вы в ней Canny из OpenCV? Если да, проверьте, подаете ли вы подходящий аргумент для Canny
- первый аргумент Canny
должен соответствовать следующим критериям:
<type 'numpy.ndarray'>
.dtype('uint8')
форма
должна быть 2-кортежем
из int
(кортеж
содержит ровно 2 целых числа)Вы можете проверить это, распечатав соответственно
type(variable_name)
variable_name.dtype
variable_name.shape
Замените variable_name
на имя переменной, которую вы передали в качестве первого аргумента в Canny
.