gpt4 book ai didi

c++ - cv::imread() 导致内存损坏

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

我已经在 Qt Creator 中创建了一个 OpenCV 项目。这个非常简单的代码导致了内存损坏:

std::string fileName = "c:\\Workspace\\ImageProcessing\\Tutorials\\src\\images\\test.jpg";
cv::Mat mat = cv::imread(fileName.c_str());

执行代码后,cv::Mat 为空,并且 fileName 的内容也被垃圾填满。我读了imread not working in OpencvOpenCV imread(filename) fails in debug mode when using release libraries .

我检查了我自己的项目,但我没有混合调试和发布库。还有内存损坏。

最佳答案

事实证明,我为我的 Qt Creator 项目使用的是 MSVC9 (VS2008) 编译器,但使用的是使用 MSVC10 (VS2010) 编译的 OpenCV。

由于 C++ 接口(interface)在编译器版本之间不稳定,因此导致内存损坏。问题是这会完全无声地失败,没有任何警告,并且会因内存损坏而爆炸。

下载了一个用VS2010构建的Qt版本后,它现在可以工作了。

关于c++ - cv::imread() 导致内存损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27255572/

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