VS2015中findContours的BUG
来源:互联网 发布:oracle nvl函数 mysql 编辑:程序博客网 时间:2024/06/05 08:58
如果有以下问题之一的,我已经发现解决办法。
1,在DEBUG模式下使用findContours能正常运行,在release模式下出错或闪退
2,在其他版本中findContours能正常运行,在VS2015+OPENCV249中出错
3,findContours在主函数中调用没问题,但是放在另一个函数中,然后主函数再调用这个函数出错或闪退。(release模式下)
为了弄清该问题,我特意写了一段测试代码:运行环境是VS2015+opencv249
#include "opencv2/imgproc.hpp"#include "opencv2/highgui.hpp"using namespace cv;using namespace std;Mat contours(Mat img_gray) {Mat img_bin;//自适应二值化 threshold(img_gray, img_bin, 125, 255, THRESH_BINARY_INV|THRESH_OTSU);vector<vector<Point>> all_contours;//在这个位置return 可以正常往下走findContours(img_bin, all_contours, CV_RETR_LIST, CV_CHAIN_APPROX_NONE);//查找边缘轮廓提取return img_bin;//在findContours后面return 函数结束后直接就结束了整个程序}void main(){Mat original = imread("D:\\lena.jpg");namedWindow("My original");imshow("My original", original);cv::cvtColor(original, original, CV_RGB2GRAY);Mat aa = contours(original);namedWindow("My sFilter");imshow("My sFilter", aa);waitKey(0);}
这段代码在DEBUG模式下是没问题的,但是在RELEASE模式下闪退了,发现问题出在findContours这里,去掉findContours程序完全没问题,加上就闪退,原因是程序在执行了findContours函数后在调用findContours函数的方法结束时就over掉了整个程序,所以没有执行main函数中后面的语句就造成了闪退了。
查了很多资料,有说在RELEASE模式下要给变量初始化,这无法解决本问题;
有说是DLL或依赖库什么的没配置好的,还有什么改变MFC或运行库的,像这样的贴:http://blog.csdn.net/superdont/article/details/24933597 都解决不了问题
有说使用老版cvFindContours但是,老版就是没findContours好,不服
还有个老外也发现了同样的问题,帖子链接:http://stackoverflow.com/questions/32349157/returning-from-function-crashing-only-after-a-certain-point-in-the-code/32372910 盒盒,老外也是搞不定这个BUG啊。
搞了2天,最后发现这确确实实是findContours的一个BUG,我把属性中的平台工具集改成Visual Studio 2013 (v120) 问题成功解决。在RELEASE模式下成功运行。
这应该是opencv在VS2015中的一个BUG
- VS2015中findContours的BUG
- 安装VS2015出现的bug
- vs2015查找功能的bug
- OpenCV中findContours函数的使用
- vs+opencv中findcontours崩溃的问题
- 在MFC中使用 findContours()的问题
- 这是vs2015 update2的bug么
- OpenCV中findContours详解
- opencv里findcontours函数中hierarchy的意义
- FindContours的算法原理
- findcontours
- findContours
- findContours
- opencv中findContours导致crash
- vs2015中webservice的建立
- VS2015的stdlib库qsort函数的一个bug
- VS2015找不到stdio.h或new.h的Bug修复
- Visual Studio 2015 Tools for Unity与VS2015的bug
- hdu 5795 A Simple Nim
- 笔杆网试用---感官体验篇一
- 蓝牙通信-打开和关闭蓝牙设备
- fcrontab 定时任务
- POJ-3244Difference between Triplets 公式转换
- VS2015中findContours的BUG
- python爬虫之模拟登陆csdn
- Linux 服务器 中文乱码问题 终端中文乱码
- POJ-2388-Ultra-QuickSort
- How To Install cronolog On Ubuntu
- Linux 命令大全完整版
- javaEE_一些笔记
- Spark入门基础教程
- quick3.6 lua-binding