Error de sintaxis al usar este código:

kernel_1 = np.ones((5, 5), np.uint8)

img_open = cv2.morphologyEx(img, op= cv2.MORPH_OPEN,kernel_1)

Mensaje de error:

img_open = cv2.morphologyEx (img, op = cv2.MORPH_OPEN, kernel_1) ^ SyntaxError: el argumento posicional sigue al argumento de la palabra clave

3
VEDANSH SHARMA 7 oct. 2019 a las 15:00

3 respuestas

La mejor respuesta

En img_open = cv2.morphologyEx(img, op= cv2.MORPH_OPEN,kernel_1)

op= cv.MORPH_OPEN es argumento de palabra clave y img, kernel_1 es argumento posicional.

Python no permite argumentos de palabras clave antes del argumento posicional

Prueba cv2.morphologyEx(img, cv2.MORPH_OPEN,kernel_1)

-2
kdw9502 7 oct. 2019 a las 12:10

No puede seguir un argumento posicional después de un argumento de palabra clave.

func(my_argu=True)  # keyword argument i.e. position doesn't matter. it always goes to my_argu
func(my_argh_1, my_arg_2)  # positional argument i.e. position/order matters

Entonces, para solucionarlo, funciona sin mirar la documentación:

cv.morphology(img, kernel_1, op=cv2.MORPH_OPEN)
or 
cv2.morphologyEx(img, cv2.MORPH_OPEN,kernel_1)
0
user14492 7 oct. 2019 a las 12:10

El error se debe a que usa la instrucción = para los parámetros antes de kernal_1

Python dará un error si haces eso, una solución será intentar esto:

kernel_1 = np.ones((5, 5), np.uint8)

img_open = cv2.morphologyEx(img, kernel_1,op=cv2.MORPH_OPEN)

No sé si la ubicación de los parámetros será la correcta, pero cuando sea así, resolverá su problema

Y de lo contrario también puedes hacer esto:

img_open = cv2.morphologyEx(img, op= cv2.MORPH_OPEN,{parameter_name}=kernel_1)

Para resolver este problema

0
Lua 7 oct. 2019 a las 12:09
58269155