gpt4 book ai didi

c++ - OpenCV - Brox 光流 - opencv_core244d!cv::GlBuffer::unbind 异常

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:51 24 4
gpt4 key购买 nike

有没有人设法让 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

最佳答案

需要 OpenGL,但您的缩放参数 (50.0f) 也可能存在问题。它似乎太大了。据我了解,这应该小于 1。如果它很大,算法会很快填满 GPU 内存。另外,使用扩展(倒置?)图像金字塔可能没有意义。虽然不是很确定。

关于c++ - OpenCV - Brox 光流 - opencv_core244d!cv::GlBuffer::unbind 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15069255/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com