1、调用findContours()函数程序崩溃。

原因:

>>分析opencv源代码,跟踪测试,进入工程:opencv_imgproc 发现findContours函数 是调用 _findContours函数来实现的,跟踪进去,发现contours.resize(total) 就会失败崩溃,应该是系统DLL调用配置问题,进一步不知道原因了…

>>这是因为,resize的时候,vector申请的默认内存不够了,vector要重新申请内存,而vector默认内存是在DLL外申请的,DLL与你的程序是两个内存空间,现在要在DLL中改你程序的内存,肯定崩溃。解决方法是,vector的变量在传入DLL前,先用resever申请足够大的空间

解决方法:

>>项目-属性-配置属性-C/C++-代码生成-运行库,将其改为“多线程调试(/MTd)”。

>>把 _findContours 源函数代码 放到dll里面,然后改一个名字,就调用这个函数,求轮廓就调用这个函数就可以了。(不知如何操作,囧)

2、调用contourArea(contours[i])和minAreaRect(contours[i])崩溃

>>vector<vector<Point> > contours,不知道什么原因……囧

解决方法:改为contourArea(Mat(contours[i]))和minAreaRect(Mat(contours[i]))

3、程序执行到最后,退出的时候,vector析构会报错

>>出错的根本原因是dll分配的heap和主程序的不一致,在我准备重新编译opencv时突然想到,在环境变量path中是有设置opencv dll的地址,我用vs2010没有问题,vs2013却有问题,检查环境变量,果然,opencv\build\x86\vc10,把vc10改成vc12,注销,在登陆就没有问题了。
其实原因还是我先用的vs10编程,后来换成vs13了,在solution改配置文件都是记得的,但是就是忘了path中dll的设置了。

解决方法:重新配置程序的编译环境,依赖库什么的,都重新搞一遍

OPENCV3.1+VS 坑我笔记!的更多相关文章

  1. Docker 入坑教程笔记

    Docker 入坑教程笔记 视频网址B站:点这里 查询命令 man docker 简单启动和退出 docker run --name [容器名] -i -t ubuntu /bin/bash 交互启动 ...

  2. UVM入坑系列笔记(一)

    最近本人在做毕业设计,需要用到UVM搭建验证平台,故在网上查找相关资料,看了一些博客和科普,多少有些收获,记录在这里,以便以后复习查看.以下是本人根据网上学习资料整理的笔记,如果有什么不对的地方欢迎指 ...

  3. 《OpenCV3编程入门》学习笔记

    把第一章的例程看完了,除了基本的操作函数,还了解了跟视频操作有关的函数,发现在自己的中心偏检测中,不仅可以处理图片,还可以对视频进行处理. 问题解决方案 1.0x7547d36f 处有未经处理的异常: ...

  4. OpenCV3计算机视觉Python语言实现笔记(五)

    图像的几何变换主要包括:平移.扩大与缩小.旋转.仿射.透视等等.图像变换是建立在矩阵运算基础上的,通过矩阵运算可以很快的找到对应关系. 1. 图像的平移 图像的平移,沿着x方向tx距离,y方向ty距离 ...

  5. OpenCV3计算机视觉Python语言实现笔记(四)

    1. Canny边缘检测 OpenCV提供了Canny函数来识别边缘.Canny边缘检测算法有5个步骤:使用高斯滤波器对图像进行去噪.计算梯度.在边缘上使用非最大抑制(NMS).在检测到的边缘上使用双 ...

  6. OpenCV3计算机视觉Python语言实现笔记(三)

    一.使用OpenCV处理图像 1.不同颜色空间的转换 OpenCV中有数百种关于在不同色彩空间之间转换的方法.当前,在计算机视觉中有三种常用的色彩空间:灰度.BGR以及HSV(Hue, Saturat ...

  7. OpenCV3计算机视觉Python语言实现笔记(二)

    1. 图像与原始字节之间的转换 从概念上讲,一个字节能表示0到255的整数.目前,对于多有的实时图像应用而言,虽然有其他的表示形式,但一个像素通常由每个通道的一个字节表示. 一个OpenCV图像是.a ...

  8. OpenCV3计算机视觉Python语言实现笔记(一)

    Python3下OpenCV的安装 :http://blog.csdn.net/lwplwf/article/details/61616493 1. 读/写图像文件 OpenCV的imread()函数 ...

  9. app中h5交互的一些坑 记录笔记

    1.ios开发镶嵌 h5页面 存在input 圆角问题(安卓直角) 解决办法 inpput{ -webkit-appearance: none; border-radius: 0px; } 2.ios ...

随机推荐

  1. JS按位非(~)运算符与~~运算符的理解分析

    按位非运算符,简单的理解就是改变运算数的符号并减去1,当然,这是只是简单的理解能转换成number类型的数据. 那么,对于typeof var!==”number”的类型来说,进行运算时,会尝试转化成 ...

  2. CKEditor实现图片上传

    本人用的CKEditor版本为4.3 CKEditor配置和部署参考CKEditor4.x部署和配置. CKEditor编辑器的工具栏中初始的时候应该是这样子的,没有图片上传按钮 并且预览中有一堆火星 ...

  3. Qt SizePolicy 属性

    控件的sizePolicy说明控件在布局管理中的缩放方式.Qt提供的控件都有一个合理的缺省sizePolicy,但是这个缺省值有时不能适合 所有的布局,开发人员经常需要改变窗体上的某些控件的sizeP ...

  4. currentRowChanged 的注意事项

    Qt中的表单控件QListWidget类提供了许多信号函数,可以和用户交互,其中有个currentRowChanged ( int currentRow ) 是检测当前选中行是否发生了改变,如果改变了 ...

  5. uva10098 Generating Fast, Sorted Permutation

    #include"iostream"#include"stdio.h"#include"string.h"#include"alg ...

  6. 关于Message目录的设定

    Yii2 默认了两个message 目录,一个是 yii 和app ,所以如果想自定义message目录,要在自己配置文件中覆盖 i18n的设定,请注意,不能使用 *,要使用 app,才能生效

  7. MySQL表的创建和表中数据操作

    这篇文章主要介绍在navicat的命令界面操作mysql.主要涉及建立表结构,和对表中数据的增加删除修改查询等动作.站在一个新手角度的简单mysql表结构和数据操作. ☆ 准备工作 1,保证自己的电脑 ...

  8. HDU 2795 Billboard(线段树的另类应用)

    Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  9. python 执行文件时传参

    ## test.py ## ####################### import sys if __name__ == "__main__": args = sys.arg ...

  10. UIbutton 和UIview 切单角

    UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom];    btn.backgroundColor = [UIColor cya ...