首页 > 解决方案 > AWS 中带有 CUDA 的 OpenCV

问题描述

嗨:
我已经使用此处在具有 T4 nVidia 卡的 AWS G4 服务器中找到的说明构建了 OpenCV 4.5.2 库,现在我正尝试在 Visual Studio 2019 中一个非常简单的 C++ 应用程序中使用它,该应用程序应该运行它完全相同的服务器。但是对于下面的示例,我在线收到Assertion Failed消息Expression: buffer != nullptrcout

int main()
{
    std::cout << cv::getBuildInformation() << std::endl;

    return 0;
}

对于下一个例子,我得到

OpenCVTest2.exe 中 0x00007FFBBC2F3596 (opencv_world452.dll) 处的未处理异常:0xC0000005:访问冲突读取位置 0xFFFFFFFFFFFFFFFF。

cv::cuda::CascadeClassifier::create(fileBuff);在线_

int main()
{
    char fileBuff[MAX_PATH];
    OPENFILENAMEA of = { sizeof(OPENFILENAME), NULL, NULL, ".xml\0\0", NULL, 0, 1, fileBuff, ARRAYSIZE(fileBuff), NULL, 0, "C:\\opencv-4.5.2\\data\\haarcascades_cuda"};

    ::ZeroMemory(fileBuff, sizeof(fileBuff));
    strcpy_s(fileBuff, "C:\\opencv-4.5.2\\data\\haarcascades_cuda\\haarcascade_profileface.xml");
    if (::GetOpenFileNameA(&of))
    {
        try
        {
            cv::Ptr<cv::cuda::CascadeClassifier> faceCas = cv::cuda::CascadeClassifier::create(fileBuff);

            if (faceCas.empty())
                MessageBox(NULL, L"XML file not loaded.", L"Error", MB_OK | MB_ICONERROR);
            else {/*Do the rest */}
        }
        catch (const cv::Exception& e)
        {
            MessageBoxA(NULL, e.what(), "Error", MB_OK | MB_ICONERROR);
        }
    }

    return 0;
}

如您所见,它fileBuff是有效的并且来自GetOpenFileNameA呼叫。我还确保选择了HAAR XML的CUDA版本。有没有人遇到过这样的事情?谢谢



标签: c++opencvopencv4

解决方案


推荐阅读