Prueba si una matriz numpy es miembro de una lista de matrices numpy, y quítala de la lista
Al probar si una matriz numpyc
es miembro de una lista de matrices numpyCNTS
:
import numpy as np
c = np.array([[[ 75, 763]],
[[ 57, 763]],
[[ 57, 749]],
[[ 75, 749]]])
CNTS = [np.array([[[ 78, 1202]],
[[ 63, 1202]],
[[ 63, 1187]],
[[ 78, 1187]]]),
np.array([[[ 75, 763]],
[[ 57, 763]],
[[ 57, 749]],
[[ 75, 749]]]),
np.array([[[ 72, 742]],
[[ 58, 742]],
[[ 57, 741]],
[[ 57, 727]],
[[ 58, 726]],
[[ 72, 726]]]),
np.array([[[ 66, 194]],
[[ 51, 194]],
[[ 51, 179]],
[[ 66, 179]]])]
print(c in CNTS)
Yo obtengo
ValueError: el valor de verdad de una matriz con más de un elemento es ambiguo. Utilice a.any () o a.all ()
Sin embargo, la respuesta es bastante clara:c
es exactamenteCNTS[1]
, asi quec in CNTS
@ debería devolver True!
¿Cómo probar correctamente si una matriz numpy es miembro de una lista de matrices numpy?
El mismo problema sucede al eliminar:
CNTS.remove(c)
ValueError: el valor de verdad de una matriz con más de un elemento es ambiguo. Utilice a.any () o a.all ()
Aplicación: prueba si unopencv
contour (numpy array) es miembro de una lista de contornos, ver por ejemploRetire un contorno opencv de una lista de contornos.