Opencv3编程入门学习笔记(四)之split通道分离Debug过程中0xC0000005内存访问冲突问题

来源:互联网 发布:化妆品好坏知多少阅读 编辑:程序博客网 时间:2024/05/17 03:11

这是笔者学习《Opencv3编程入门》的第四篇博客,这篇博客主要是解决在Windows系统下VS 2013中Debug含有split分离通道色彩函数时报出的0xC0000005内存访问冲突问题,问题表现如下面第一幅图所示。
报出错误图片

刚刚遇到这个问题的时候,确实花费了不少时间找问题根源,主要是Release版本下这个问题不会出但是在Debug版本下就会报出。“调用堆栈”指出opencv_world300.dll错误,但是仔细一想,不对啊,我这是debug版本应当使用的是opencv_world300d.dll才对啊,因而可以锁定是opencv_world300d.lib运行库在配置的时候出现了错误。但是笔者仔细查看了自己的lib运行库的配置,发现自己把opencv_world300.lib、opencv_world300d.lib、opencv_ts300.lib、opencv_ts300d.lib都进行了配置了啊,并且笔者为了方便在VS2013中进行了Opencv一次性配置,既然配置了为何Debug的时候会定位到opencv_world300.lib呢?这里笔者猜测可能是存在引用的先后顺序,于是笔者把整个VS2013的Opencv3的配置都做了调整,把非Debug的lib(即不带_d.dll)全部删除,删除如下三幅图。

解决问题步骤1

解决问题步骤2

解决问题步骤3

经过不懈的调整努力,这个问题终于解决了,现在分享一下demo的Debug运行效果。

问题解决后效果图

注意:如果你开启了多个VS2013的编辑器,请对每一个都进行确认。

此外,要特别感谢以下两篇文章。

http://blog.csdn.net/alickr/article/details/51503133
https://www.zhihu.com/question/43831704

0 0