2016-03-30 11 views
0

Ich versuche, dichten optischen Fluss mit Farneback-Methode zu berechnen, und ich habe folgenden Fehler: Fehler: (-215) scn == 1 & & (dcn == 3 || dcn == 4) ipp_cvtColor in FunktionDichter optischer Fluss zwischen zwei Frames

Mein Code:

Mat flow, cflow, frame1,frame2; 
UMat gray1,gray2, uflow; 
namedWindow("flow", 1); 


frame1 = imread("./car1.jpg", IMREAD_COLOR); 
frame2 = imread("./car2.jpg", IMREAD_COLOR); 

cvtColor(frame1, gray1, COLOR_BGR2GRAY); 
cvtColor(frame2, gray2, COLOR_BGR2GRAY); 


calcOpticalFlowFarneback(gray2, gray1, uflow, 0.5, 3, 15, 3, 5, 1.2, 0); 
cvtColor(frame2, cflow, COLOR_GRAY2BGR); 
uflow.copyTo(flow); 
drawOptFlowMap(flow, cflow, 16, 1.5, Scalar(0, 255, 0)); 
imshow("flow", cflow); 

Antwort

1

Thuis Linie

ist wahrscheinlich der Täter. In einer Zeile über Ihnen laden frame2 als ein Farbbild mit frame2 = imread("./car2.jpg", IMREAD_COLOR);, aber jetzt versuchen Sie es von grau stattdessen konvertieren, was unlogisch scheint.

+0

Sie haben Recht, ich sah diese Linie nicht .. :) –

+0

Fehler: (-215) size.width> 0 && size.height> 0 in Funktion imshow Dies passiert jetzt ... –

+0

Wie der Fehler etwas kryptisch sagt dir, die 'Mat', die du an 'imshow' übergibst, ist leer. I.e. mindestens eine seiner Dimensionen ist Null. Sie sollten wahrscheinlich über Ihre Matrizen schauen und sehen, welche wo und zu welchem ​​Zweck verwendet wird. –

Verwandte Themen