gpt4 book ai didi

visual-studio - BackgroundSubtractorMOG2 bgm->apply 在 Visual Studio 2017 中抛出异常

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:48 25 4
gpt4 key购买 nike

我是 C++ 和 opencv 的新手,在运行背景减法器模型时遇到困难。我正在使用 Visual Studio 2017 (VC++) 和 opencv 3.2。

我需要使用 BackgroundSubtractorMOG2 它可以很好地创建模型但是当我向它传递一个从编码图像转换而来的新帧时抛出异常(因为我使用的 USB3 相机不t 允许通过 opencv 直接读取帧)到 cv::Mat。代码片段如下

if (EncodeRawImage(pRawImage, &frameDesc, imageFormat, &pEncodedImage, &encodedImageSize) == SUCCESS) {
// Convert current raw image to openCV Mat format for analysis
auto store = gcnew cli::array<Byte>(encodedImageSize);
System::Runtime::InteropServices::Marshal::Copy(IntPtr(pEncodedImage), store, 0, encodedImageSize);
auto stream = gcnew System::IO::MemoryStream(store);

System::Drawing::Bitmap^ bitmapFrame = safe_cast<System::Drawing::Bitmap ^> (Image::FromStream(stream));
Mat imgBuf = Mat(bitmapFrame->Width, bitmapFrame->Height, CV_8U, pEncodedImage);
Mat imgMat = imdecode(imgBuf, CV_LOAD_IMAGE_COLOR);

bgm->apply(imgMat , fgMaskMOG);
returnCode = 1;
}

异常(exception)是

owner 0x0000023afa2a2ec0 Information not available, no symbols loaded for opencv_world320d.dll> cv::detail::PtrOwner *

stored 0x0000023afa29baa0 Information not available, no symbols loaded for opencv_world320d.dll> cv::BackgroundSubtractorMOG2 *

即使 opencv320d.lib 已正确链接,并且在同一程序中为我运行了一些其他基本的 opencv 示例(例如,cv::subtract、cv::calcHist 等)。我想知道是不是因为图像尺寸太大 (4608x3288) 并且我正在创建的 bitmpaFrame 可能有问题?

或者如果我试图以不允许的方式访问流/内存中的图像数据?

最佳答案

尽管当我执行断点时信息未找到字符串仍然存在,但我只是发现模型正在抛出异常,因为我在原始问题 (4608x3288) 中提到过图像尺寸过大。我调整图像大小 (resize(newImageMat, newImageMat, cv::Size(1000, 1000 * newImageMat.rows/newImageMat.cols), INTER_LINEAR);),错误消失,模型学习并显示结果。该文本可能是 Visual Studio 错误,因为我在这里阅读了类似的问题 https://stackoverflow.com/a/7736034/3377101

关于visual-studio - BackgroundSubtractorMOG2 bgm->apply 在 Visual Studio 2017 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46188860/

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