OpenCV二值图像分析之寻找缺失与靶心

引子

大家好,今天给大家分享两个很经典的图像处理与分析问题,希望通过这两个例子,大家能够得到更多的启发,从而想到更好的解决类似问题的思路。

01 问题一:寻找靶心

OpenCV二值图像分析之寻找缺失与靶心

图一

02 问题二:寻找其中的缺失点

OpenCV二值图像分析之寻找缺失与靶心

图二

解决方法

01 寻找靶心

仔细观察图一,可以看到两个最直接的是靶心有十字交叉线,而在OpenCV形态学处理中,支持十字交叉结构元素,所以我们可以先检测两条线,然后获取十字交叉结构,最后对结构进行轮廓分析,获取中心点,即可获得最终的靶心位置,最终寻找到的靶心位置图示如下:

OpenCV二值图像分析之寻找缺失与靶心

获取水平与垂直线如下:

OpenCV二值图像分析之寻找缺失与靶心

获取十字交叉线如下:

OpenCV二值图像分析之寻找缺失与靶心

代码实现如下:

OpenCV二值图像分析之寻找缺失与靶心

02 寻找缺失

仔细观察图二,缺失是偶发情况,针对这种情况下,要完成计数与缺失位置标定!我感觉我的密集恐惧症已经开始犯了!首先需要获取这些位置,通过二值话与轮廓发现搞定,然后根据这些轮廓位置,重新绘制统一的圆形标记,轮廓发现对每个圆形标记进行上下左右位置最近领搜索,返回间隔距离,-1表示边界,根据间隔距离设置阈值查找缺失,最终运行结果如下:

OpenCV二值图像分析之寻找缺失与靶心

从原图得到的标记图如下:

OpenCV二值图像分析之寻找缺失与靶心

代码实现如下:

OpenCV二值图像分析之寻找缺失与靶心

完整代码获取