【opencv】debug报错HEAP CORRUPTION DETECTED

运行至第一句涉及矩阵运算的代码(如cv::multiply)时报错

bash 复制代码
HEAP CORRUPTION DETECTED: after Normal block (#45034) at 0x000001BDC586F0E0.
CRT detected that the application wrote to memory after end of heap buffer.

release下不会报错,只有debug下会报错

版本:opencv 3.1.0 vc2013 x64

不管是官方编译的版本还是自己编译的版本,都会报错。进一步的,在自己编译的版本下看调用堆栈

一层层往上找:

std::allocator<>::deallocate,c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory0

std::vector<>::~vector,c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\vector

cv::ocl::selectOpenCLDevice,opencv\sources\modules\core\src\ocl.cpp

挂在了selectOpenCLDevice的返回时std::vector析构的地方,此处是找到tempStrDeviceType="gpu"类型的设备了,devices不为空,其类型为std::vector<cl_device_id> devices,其中struct _cl_device_id { int dummy; };

看到源码里有一句注释Use clReleaseDevice to cleanup,是不是opencl的设备没有显式释放导致的?

但把本机编译好的debug版本可执行文件放到另外一台机器上运行,一切正常,说明可能是跟机器相关。

本机(出问题的机器)配置是win11 + i5 13500HX + RTX 4050 laptop,正常运行的机器配置是win10 + i7 9700 + GTX 1660Ti

怀疑是opencv3.1.0的opencl代码太老旧在新设备上无法正常debug运行,是否是40系n卡的问题?(待验证)

相关推荐
hhzz13 小时前
【OpenCV 入门到精通 01】认识 OpenCV 与计算机视觉:从零建立全局认知
人工智能·python·opencv·计算机视觉·开源
clorinda17 小时前
OpenCV 学习实践:从人脸检测到人脸识别
人工智能·opencv·学习
AndrewHZ18 小时前
图像处理入门027 | 查找表(LUT)加速——把像素级操作从“每次算一遍“变成“只算 256 次“
图像处理·opencv·numpy·滤镜·查找表·lut
陈年老古董18 小时前
OpenCV 人脸识别学习笔记:从Haar检测到三种特征脸算法实战
笔记·opencv·学习·人脸识别
AI的探索之旅20 小时前
97 个 OpenCV 实例(二十一):音频进阶,音视频同抽与麦克风采集
人工智能·opencv·音视频
棣廷20 小时前
初识OpenCV——特征匹配与综合实战
人工智能·opencv·计算机视觉
AI的探索之旅21 小时前
97 个 OpenCV 实例(二十二):GStreamer 管道,自定义采集与多后端性能
人工智能·opencv·计算机视觉
西西弗Sisyphus2 天前
C++ 实现 替代 OpenCV resize INTER_LINEAR 的一种方式
c++·opencv
千里码aicood2 天前
flask基于opencv绘图机器人的系统设定(opencv)
opencv·机器人·flask
Everbrilliant892 天前
实时视觉感知实战:CameraX + OpenCV(C++/JNI) 实现多级联人脸检测与框选实物跟
opencv·实时人脸检测·多级联人脸检测·camshift实物跟踪·haar 级联检测器·多模型检测 + nms 聚类·camshift+多维特征验证