OpenCV で Brox 高密度オプティカル フロー アルゴリズムを動作させることができた人はいますか?
ここにいくつかのコードがあります:
{
// 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 を使用すると、次の例外が発生します。
Exception at 0x7c812fd3, code: 0xe06d7363: C++ exception, flags=0x1 (execution cannot be continued) in opencv_core243d!cv::SparseMat::erase