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 版本。总的来讲就是说我们在配置的时候要养成好习惯,对于每一个工程对应于相应的配置文件。而不是像网上所讲的加入的越多越好。这是我对这个问题的一点见解,并非具有普世价值,水平有限多多谅解。

改正之后的配置文件:VS 下使用findcontours函数触发断点问题解决方案_第1张图片

部分代码:VS 下使用findcontours函数触发断点问题解决方案_第2张图片

网友提出的 :vector contours;

                     Mat hierarchy;

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

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

VS 下使用findcontours函数触发断点问题解决方案_第3张图片


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

VS 下使用findcontours函数触发断点问题解决方案_第4张图片

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

你可能感兴趣的:(解决方案,opencv,visual,studio,opencv)