2016-03-30 19 views
0

Farneback yöntemini kullanarak yoğun optik akışı hesaplamaya çalışıyorum ve aşağıdaki hatayla karşılaşıyorum: hata: (-215) scn == 1 & & (dcn == 3 || dcn == 4) işlevinde ipp_cvtColorİki çerçevenin arasındaki yoğun optik akış

Kodum:

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); 

cevap

1

Thuis hat

muhtemelen suçlu. Yukarıdaki satırda, frame2 = imread("./car2.jpg", IMREAD_COLOR); kullanarak renkli bir resim olarak frame2 yüklersiniz, ancak bunun yerine gri yerine, mantıksız görünüyor.

+0

Haklısınız bu satırı görmedim .. :) –

+0

hata: (-215) size.width> 0 && size.height> 0 işlev imshow Bu şimdi olur ... –

+0

Biraz hata olarak hata olarak size söyler, 'Mat' imshow'a geçiyorsun boş. Yani boyutlarından en az biri sıfırdır. Muhtemelen matrislerinizi gözden geçirmeli ve hangisinin nerede ve ne amaçla kullanıldığını görmelisiniz. –