Provo ad usare la funzione checkContour() nel nuovo python api (cv2) e lo do funziona se creo contorni da controllare usando findContours ad es.Controllo dell'area del contorno in opencv usando python
contours, hierarchy = cv2.findContours(imgGray, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
cv2.contourArea(contours[0])
tuttavia quando creo contorno per conto mio il seguente codice non funziona
contour = numpy.array([[0,0], [10,0], [10,10], [5,4]])
area = cv2.contourArea(contour)
e restituisce "errore: (-215) contour.checkVector (2)> = 0 & & (contour.depth() == CV_32F || contour.depth() == CV_32S) nella funzione contourArea"
quando cambio a
contour = numpy.array([[0,0], [10,0], [10,10], [5,4]], dtype=numpy.int32)
ho ottenuto "l'errore: (-210) La matrice non può essere convertito al punto successione a causa di inadeguato elemento di tipo nella funzione cvPointSeqFromMat"
Come rendere il seguente codice in C++ dalla documentazione
vector<Point> 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);
funziona nell'ultima API python (2.3)?