【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卡的问题?(待验证)

相关推荐
AI科技星4 小时前
基于wr/c + h/c = 1的螺旋线矢量特性及应用分析
c语言·开发语言·人工智能·opencv·算法·计算机视觉·r语言
我材不敲代码6 小时前
基于 OpenCV-SIFT 特征匹配的指纹识别系统实战
人工智能·opencv·计算机视觉
sali-tec7 小时前
C# 基于OpenCv的视觉工作流-章41-模板匹配
图像处理·人工智能·opencv·算法·计算机视觉
强风7948 小时前
OpenCV基础入门
人工智能·opencv·计算机视觉
光羽隹衡9 小时前
计算机视觉——Opencv(人脸检测)
人工智能·opencv·计算机视觉
是梦终空10 小时前
计算机毕业设计269—基于python+深度学习+YOLOV8的交通标志识别系统(源代码+数据库+报告)
python·深度学习·opencv·毕业设计·torch·课程设计·pyqt5
不懒不懒1 天前
【实战案例:基于特征匹配的指纹识别系统开发】
人工智能·opencv·计算机视觉
困死,根本不会1 天前
OpenCV视觉舵机控制系统:从坐标检测到串口控制完整实现
人工智能·opencv·计算机视觉
Fleshy数模1 天前
基于OpenCV实现指纹识别与验证:原理与实战
人工智能·opencv·计算机视觉
光羽隹衡1 天前
计算机视觉——Opencv(摄像头实时风格迁移)
人工智能·opencv·计算机视觉