Verificando el área del contorno en opencv usando python

Intento usar la función checkContour () en la nueva api de python (cv2) y funciona si creo que los contornos se verifiquen utilizando findContours, por ejemplo

contours, hierarchy = cv2.findContours(imgGray, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) cv2.contourArea(contours[0]) 

sin embargo, cuando creo un contorno por mi cuenta, el siguiente código no funciona

 contour = numpy.array([[0,0], [10,0], [10,10], [5,4]]) area = cv2.contourArea(contour) 

y devuelve “error: (-215) contour.checkVector (2)> = 0 && (contour.depth () == CV_32F || contour.depth () == CV_32S) en la función contourArea”

cuando me cambio a

 contour = numpy.array([[0,0], [10,0], [10,10], [5,4]], dtype=numpy.int32) 

Me salió “error: (-210) La matriz no se puede convertir a secuencia de puntos debido a un tipo de elemento inapropiado en la función cvPointSeqFromMat”

Cómo hacer el siguiente código en C ++ a partir de la documentación.

 vector contour; contour.push_back(Point2f(0, 0)); contour.push_back(Point2f(10, 0)); contour.push_back(Point2f(10, 10)); contour.push_back(Point2f(5, 4)); double area0 = contourArea(contour); 

¿Trabajar en la última API de Python (2.3)?

Éste debería funcionar:

 contour = numpy.array([[[0,0]], [[10,0]], [[10,10]], [[5,4]]]) area = cv2.contourArea(contour)