Opencv基于findContours的二值图微小连通域去除
本文是基于https://blog.csdn.net/qingzhuyuxian/article/details/92791447?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-1.nonecase文章的改进,感谢该作者的分享。
原文中的微小连通域去除存在着当嵌套较多的连通域的时候,会出现满足条件的连通域也会被消去,所以我就加了一个判断,判断当前轮廓是否存在内嵌轮廓(算法原理:https://zhuanlan.zhihu.com/p/107257870 ,函数详解:https://blog.csdn.net/laobai1015/article/details/76400725,这两个写的很清楚),然后选择是填充255或者0,而且我利用排序,按照连通域面积的大小来进行填充,就可以避免大轮廓将小轮廓覆盖了,效果图如下:
原图:
效果图:
轮廓图:
程序下载连接:https://download.csdn.net/download/qq_41372644/13633121