我想計算和顯示opticalFlowBM,但有嚴重的麻煩。我正在使用Cuda 7.5和OpenCV 3.0.0。 我試圖把它重寫到3.0.0。 Sizes of input arguments do not match in cvcalcopticalflowbm opencv 2.4.7 我的代碼(imgA
和imgB
從VideoCapture // cap.read(ImgA)
讀Mats
):OpenCV Cuda calcOpticalFlowBM
cvtColor(imgA,imgA,COLOR_BGR2GRAY);
cvtColor(imgB,imgB,COLOR_BGR2GRAY);
CvSize size = imgA.size();
CvSize velsize = CvSize(size.width,size.height);
size.width/=BS;
size.height/=BS;
//result=Mat(size,IPL_DEPTH_8U);
//result=Scalar(255,255,255);
Mat velx,vely;
velx=Mat(velsize,IPL_DEPTH_32F);
vely=Mat(velsize,IPL_DEPTH_32F);
GpuMat imgAA;
imgAA.upload(imgA);
GpuMat imgBB;
cvtColor(imgAA,imgAA,COLOR_BGR2GRAY);
cvtColor(imgBB,imgBB,COLOR_BGR2GRAY);
imgBB.upload(imgB);
GpuMat velxx;
velxx.upload(velx);
GpuMat velyy;
velyy.upload(vely);
GpuMat buffor;
calcOpticalFlowBM(imgBB,imgAA,cvSize(BS,BS),cvSize(1,1),cvSize(1,1),0,velxx,velyy,buffor);
Mat abc(imgAA);
namedWindow("abc");
imshow("abc",imgAA);
但一直得到錯誤:
OpenCV Error: The function/feature is not implemented (You
should explicitly call download method for cuda::GpuMat object) in getMat,file
/home/pentaquark/Pulpit/opencv/opencv-3.0.0-
alpha/modules/core/src/matrix.cpp, line 1193 terminate called after throwing an instance of 'cv::Exception'what():
/home/pentaquark/Pulpit/opencv/opencv-3.0.0- alpha/modules/core/src/matrix.cpp:1193: error: (-213) You should explicitly call download method for cuda::GpuMat object in function getMat
誰能幫助我?
這並不提供答案的問題。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 - [來自評論](/評論/低質量帖/ 11428395) – Rook
這是真的我沒有得到評論的聲譽。 – imonaboat