初学Opencv 使用split()遇到的内存问题

SssQqq_ 2015-07-15 06:04:41
错误提示:(opencv_world300.dll) (test1.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0xDDDDDDE9 时发生访问冲突。

代码:Mat dota_Image,dota_Logo;
vector<Mat> channel;
dota_Image = imread("dota2_jugg.jpg");
dota_Logo = imread("dota2_logo.jpg",0);

assert(dota_Image.data != NULL);
assert(dota_Logo.data != NULL);
split(dota_Image,channel);

调试运行到split函数的时候程序当掉,感觉是vector内存越界的问题,求大神看下怎么解决?如果自己用new分配内存则没有问题,然后再release模式下也没问题
...全文
1252 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_30615001 2018-02-28
  • 打赏
  • 举报
回复
引用 6 楼 yingsongwu 的回复:
找了一些论坛以后,发现了一个办法就是给vector定义一个大小
用这个方法解决了,谢谢~~~
Flow__water 2017-11-05
  • 打赏
  • 举报
回复
调试运行到split函数的时候程序当掉,感觉是vector内存越界的问题,求大神看下怎么解决?如果自己用new分配内存则没有问题,然后再release模式下也没问题 。。。 我也是同样的问题,怎么用new分配内存啊???
qq_25000015 2017-09-12
  • 打赏
  • 举报
回复
7,8楼都可以解决问题,但是为啥啊?以前这么定义的没出错!
pulu7370 2017-09-04
  • 打赏
  • 举报
回复
跟楼上一样,这个到底是什么原因呀?
ZealCV 2017-07-31
  • 打赏
  • 举报
回复
引用 6 楼 yingsongwu 的回复:
找了一些论坛以后,发现了一个办法就是给vector定义一个大小
我的,使用vector就不行,定义大小还是不行,只能用Mat rgbPlanes[3]
觅路人 2017-06-06
  • 打赏
  • 举报
回复
我也出现这个问题了,没有找到原因,因为dll文件设置应该是没有问题的; 后来找了个解决方案:将“vector<Mat> rgbPlanes;"改为“Mat rgbPlanes[3]”; 使用Mat矩阵可以解决这个问题
根三 2017-02-16
  • 打赏
  • 举报
回复
找了一些论坛以后,发现了一个办法就是给vector定义一个大小

前仰打铁 2015-12-16
  • 打赏
  • 举报
回复
楼主解决了没?
snow_daisy 2015-11-18
  • 打赏
  • 举报
回复
求问最后是怎么解决的??
这样子的话 2015-10-30
  • 打赏
  • 举报
回复
楼主解决没?什么问题?
赵4老师 2015-07-16
  • 打赏
  • 举报
回复
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。
shiter 2015-07-16
  • 打赏
  • 举报
回复
检查一下看看是不是使用的dll,lib版本不对,我猜有可能是这个原因

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧