CV1——二值图像分析之连通域

在计算机视觉课程中,本文探讨了二值图像分析的重点——连通域查找和标记。介绍了两种方法:递归算法,通过深度搜索对1像素标记并遍历邻域;以及序贯算法,利用从左到右、从上到下的遍历,通过等价表更新来处理连通区域。这两种方法各有优缺点,递归算法效率较低,而序贯算法则以空间换取时间效率。
摘要由CSDN通过智能技术生成

最近选修了计算机视觉的有关课程,主要目的就是系统地学习一下计算机视觉的有关知识。之前涉及到了一些,但是主要是结合opencv的学习,功能上只会调库,而没有深入思考背后的原理及实现,这次算是补课了。

首先从最简单的二值图像分析开始,这里主要介绍了一个比较重要的知识点,就是如何寻找连通域并标记。

第一种方法就是递归算法,其实可以算作是一种深度搜索,先把原有的图像二值化为0与1,然后把所有1的部分置为-1,这样做的目的是为了区别之后标记类别所要用的1,然后开始遍历,对于像素值为-1的点,首先要进行标记,然后在其邻域进行递归搜索,这里不需要返回处理,因为当一个值周围在没有未标记的-1点,说明邻域已经寻找完毕,退出搜索。值得注意的是,这个算法之所以效率不高,原因是一旦搜索完了一片邻域之后,需要重新再来一遍重新寻找搜索的起始点。

第二种方法是以空间换时间,称为序贯算法,主要思路是,进行从左至右,从上至下的遍历,遍历过程中分情况讨论,其中当上方和左方标记不一致的时候,则需要一步更新等价表的操作,等价表其实就是记录一下哪些虽然标号不同,但是实际可以可以连在一起的相邻区域。

#encoding=utf-8
import numpy as np

class FindConnectedDomain(object):

    def __init__(self):
        pass

    def baseMethod(self,image):

        dir = [[1,0],[-1,0],[0,1],[0,-1]] # 方向向量
        m, n = im
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值