您的位置:首页 > 运维架构

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

2016-06-14 10:31 387 查看
因为最近在做一个轮廓检测的项目,其中需要用到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:(加入了一些删减的操作)



以上是我解决这个问题的方案,因为网上众说纷纭,所以想要给出一个相对更加完善的解决方案。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息