【opencv】异常:Microsoft C++ exception: cv::Exception at memory location xxxxxxxx解决

(新人第一篇博文,只是想汇总一下问题解决方式,如有错误欢迎指正,侵删~)

最近在用VS 2013和opencv搞遗传算法的可视化,找了份代码运行不通,调试时出现“cv::Exception at memory location 0x000000BA8F64E70” 的信息。没见过,百度试一下,总结列出我觉得比较有用的解决方式:

  1. 检查环境配置(如果前面程序可以运行,且没有手动修改过什么的话,基本不需要考虑这一条,往下);

  2. 有读取图片或文件操作的:图片或文件放置的位置不正确、命名错误、格式等错误:
    注意及解决:
    1)仔细检查文件名及格式是否错误(.png写成.jpg我是见过的;名字大写打成小写的也是太多了);
    2)如果使用绝对路径,路径格式应为:(举例)
    C:\\Users\\XXX\\Desktop\\map.jpg (注意!不是单杠!!!);
    3)如果不采用绝对路径,请务必保证读取的图片或文件存储放在工程目录中,将图片放到工程目录中的.cpp同路径下!!!
    【opencv】异常:Microsoft C++ exception: cv::Exception at memory location xxxxxxxx解决
    4) 读取文件的时候读取的是中文名称的文件也可能出错,目前最好的解决方案就是把中文名称改成英文。
    5) 值得注意的一个问题是,有的时候由于图像的大小超过计算机屏幕分辨率大小,也可能出现这一问题(贴个链接给你们看):
    【OpenCV】异常: cv::Exception,位于内存位置 0x000000000030F440 处

  3. 如果都不是的话,那就从代码看起。大部分情况下都是某个位置的参数、变量或者是函数调用等出错,这个没有固定的解决方案,只能自己设断点,查程序慢慢找。
    我的就是函数调用的问题,具体原因在于:我的程序分多个cpp和头文件,GetPoint和mouse_event两个cpp都写了my_mouse_callback这一函数来记录鼠标点击的信息等,起初图省事写了一样的名字,后来为了区分就把GetPoint里面的重命名为了my_mouse_callback_,二者的实现有一些区别,
    然后…调用的时候忘记了改过的下划线…【opencv】异常:Microsoft C++ exception: cv::Exception at memory location xxxxxxxx解决
    然后就导致每次执行到这里的时候,狂点鼠标也没有记录点的信息,然后就开始一轮崩溃~
    改过来之后就完美运行了。

然后看了一下搜到的,也大多都是代码本身的问题,链接贴出来方便大家参考~
1)
使用copyTo生成图片的时候,因为维度的不同而造成这个提示错误
2)Debug下运行报这个错误,切换到Release下运行正常
3)矩形左上角坐标设置的过大,导致内存出问题!
(看完这篇,我就找到bug所在了,哈哈哈,本文也依照这篇博文进行整理,在此感谢~~)

总结:关键在于,要细心要细心要细心!!!
码代码的时候如果够细心,可以省掉大部分bug。。。