在opencv 2.2 中 调用 findContours() 函数 Crash 问题

 

在vc2010中创建的dll中调用findContours()函数,系统崩掉!

 

代码如下:

       vector<vector<cv::Point> > contours;

       vector<Vec4i> hierarchy;

       findContours(bin, contours, hierarchy,

           CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE );

 

 

分析opencv源代码,跟踪测试

进入工程:opencv_imgproc

 发现findContours函数 是调用 _findContours函数来实现的,跟踪进去,发现contours.resize(total) 就会失败崩溃,应该是系统DLL调用配置问题,进一步不知道原因了

 

解决方案:

直接将:_findContours( Mat& image, vector<vector<Point> >& contours,

               vector<Vec4i>* hierarchy, int mode, int method, Point offset )

提出来,放到dll中改一个名字,再调用OK了。

 

    呵呵,用了一天时间才解决了问题,开始一直找动态库配置原因,后面又重新下载源代码编译跟踪分析出问题源头,先临时解决了。

    应该还有更好的解决方案,应该是参数传递问题,有牛人给些建议

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值