Descargo de responsabilidad: soy un gran novato en openCV
Traceback (most recent call last):
File "lanes2.py", line 22, in
canny = canny(lane_image)
File "lanes2.py", line 5, in canny > gray = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)
TypeError: Se esperaba cv::UMat para el argumento 'src'
¿A qué se refiere exactamente 'src'?
src
es el primer argumento de cv2.cvtColor
.
El error que obtienes es porque no es la forma correcta. cv2.Umat()
es funcionalmente equivalente a np.float32()
, por lo que tu última línea de código debería decir:
gray = (np.float32(imgUMat), cv2.COLOR_RGB2GRAY)
gray = cv2.cvtColor(cv2.UMat(imgUMat), cv2.COLOR_RGB2GRAY)
UMat es una parte de la API Transparente (TAPI) que ayuda a escribir un código para las implementaciones de la CPU y OpenCL.
¿Es canny
su propia función? ¿Utiliza Canny de OpenCV dentro de ella? Si es así, compruebe si usted alimenta argumento adecuado para Canny
- primer argumento Canny
debe cumplir con los siguientes criterios:
<type 'numpy.ndarray'>
dtype('uint8')
que es un array 2D, es decir, su
formadebe ser 2-
tuplade
ints (
tupla` que contiene exactamente 2 enteros)Puedes comprobarlo imprimiendo respectivamente
type(variable_name)
variable_name.dtype
variable_name.shape
Sustituya nombre_de_la_variable
por el nombre de la variable que introduce como primer argumento a Canny
.