有沒有人設法讓OpenCV中的Brox密集光流算法工作?OpenCV - Brox Optical Flow - opencv_core244d中的異常!cv :: GlBuffer :: unbind
下面是一些代碼:
{
// Load images
cv::Mat PreviousFrameGrayFloat; // Has an image in format CV_32FC1
cv::Mat CurrentFrameGrayFloat; // Has an image in format CV_32FC1
// Upload images to GPU
cv::gpu::GpuMat PreviousFrameGPU(PreviousFrameGrayFloat);
cv::gpu::GpuMat CurrentFrameGPU(CurrentFrameGrayFloat);
// Prepare receiving variables
cv::gpu::GpuMat FlowXGPU;
cv::gpu::GpuMat FlowYGPU;
// Create optical flow object
cv::gpu::BroxOpticalFlow OpticalFlowGPU = cv::gpu::BroxOpticalFlow(0.197f, 0.8f, 50.0f, 10, 77, 10);
// Perform optical flow
OpticalFlowGPU(PreviousFrameGPU, CurrentFrameGPU, FlowXGPU, FlowYGPU); // EXCEPTION
// Exception in opencv_core244d!cv::GlBuffer::unbind
// Download flow from GPU
cv::Mat FlowX;
cv::Mat FlowY;
FlowXGPU.download(FlowX);
FlowYGPU.download(FlowY);
}
我得到一個例外,因爲上述評論的,當我嘗試使用cv::gpu::BroxOpticalFlow
對象,我有同樣的問題與cv::gpu::PyrLKOpticalFlow
但只有茂密的版本不疏一個,cv::gpu::FarnebackOpticalFlow
工作正常...
奇怪。
整個例外是:
Exception at 0x7c812fd3, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) in opencv_core244d!cv::GlBuffer::unbind
我使用的是調試建立與調試庫,使用OpenCV的2.4.4但是代碼也提出了在OpenCV中2.4.3異常。
當我使用OpenCV的2.4.3我得到這個異常:http://stuartjames.info/Journal/opencv-brox-optical-flow-sample-possible-fix.aspx
它看起來像我需要重新編譯的OpenCV:
Exception at 0x7c812fd3, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) in opencv_core243d!cv::SparseMat::erase
是否有演示應用程序或任何證明OpenCV附帶的計算使用情況?這可能是一個很好的開始... – aardvarkk 2013-02-25 17:20:54
我找到了這個,但我希望有一個解決方案,不涉及重新編譯OpenCV ... http:// stuartjames。info/journal/opencv-brox-optical-flow-sample-possible-fix.aspx – 2013-02-25 17:32:54