VS 下使用findcontours函数触发断点问题解决方案

因为最近在做一个轮廓检测的项目,其中需要用到findcontour函数对二值图像的轮廓进行提取,然而在使用时却出现了许多问题,在DEBUG模式下总是会报错“.......exe have triggered a breakpoint.在网上查找了一些资料主要是动态库连接问题,最终也没能解决我的问题。于是准备转而使用CVfindcontours函数进行,但是心里不是很痛快。毕竟在使用opencv3.0 所以我决定解决这个问题,结合网友的资料,我重新看了下opencv的配置,发现了问题,在连接器的配置中我加入了world_ts300.lib,和world_ts300d.lib;也就是说我加入了release和debug版本的库,而我是在DEBUG 模式下运行的,也许对于其他的函数无影响,但是对于findcontours函数来讲这是有区别的,于是我将上述两个库的加载顺序改变了一下,world_ts300d在前,world_ts300在后,或者我们可以删除其中的某一个库都行,这根据自己的习惯来决定,自行选用DEBUG 或者RELEASE 版本。总的来讲就是说我们在配置的时候要养成好习惯,对于每一个工程对应于相应的配置文件。而不是像网上所讲的加入的越多越好。这是我对这个问题的一点见解,并非具有普世价值,水平有限多多谅解。

改正之后的配置文件:

部分代码:

网友提出的 :vector<Mat> contours;

                     Mat hierarchy;

           仍然没有解决问题,但是代码是可以运行的,查看findcontours的源码,可以看到其需要的vector于std的vector是相同的,因此网上的说这两个不同的说法是错误的。同              时我们也可以看出find从tours函数是支持Mat的。

改正之后的程序运行效果图:CANNY



CONTOURS:(加入了一些删减的操作)


以上是我解决这个问题的方案,因为网上众说纷纭,所以想要给出一个相对更加完善的解决方案。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值