在 Windows Server 2012 R2 中使用 OpenCV 的 Canny 函数时 C++ 崩溃

Posted

技术标签:

【中文标题】在 Windows Server 2012 R2 中使用 OpenCV 的 Canny 函数时 C++ 崩溃【英文标题】:C++ crash when using OpenCV's Canny function in Windows Server 2012 R2 【发布时间】:2019-01-07 09:43:24 【问题描述】:
while (true)

    cap.read(frame);

    if (frame.empty())
    
        cap.release();
        break;
    

    cv::cvtColor(frame, frame, CV_BGR2GRAY);
    cv::GaussianBlur(frame, frame, cv::Size(3, 3), 1.8);

    cv::Mat edgeImage;
    cv::Canny(frame, edgeImage, 120, 255, 5);

    imshow("window", edgeImage);
    cv::waitKey(15);

带有 Update3 的 Visual Studio 2015。 使用 OpenCV 3.4.3(x64) 构建它 x64。

这是一个很奇怪的错误。

在 Windows7 中运行此应用程序时,就可以了。但在 Windows Server 2012 R2 中,无法正常工作。 应用程序崩溃并死机。

应用程序崩溃后,我在控制面板的事件查看器中找到了日志。

无法访问文件 'C:\Windows\System32\vcruntime140.dll'

但是文件在那里,而且我安装了所有的 VC++ 运行时再分发包(2005,2008,2010,2012,2013,2015)x86 和 x64。

更多,这里有最好的东西。 当我评论 cv::Canny 和应用程序工作得很好! (当然我把下面的 imshow 改成 imshow("window", frame);)

我不知道这个应用程序发生了什么... 请给我任何建议。

由于某些原因,我无法在 Server 2012 R2 中使用 VS2015 对其进行调试

【问题讨论】:

【参考方案1】:

问题解决了。

服务器 CPU 是 Intel Xeon Gold 6126。

我认为 OpenCV 3.4.3 有一个 bug。

OpenCV 3.4.5 效果很好。

【讨论】:

以上是关于在 Windows Server 2012 R2 中使用 OpenCV 的 Canny 函数时 C++ 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何去除 windows server 2012 r2 自动锁定

windows server 2012 r2怎么安装

windows server 2012 r2(GUI)密码遗失处理

windows server 2012 r2安装哪个版本的step7

windows server 2012 r2安装哪个版本的step7

windows server 2012 r2驱动要怎么安装