图像算法-二值图像 目标标记 连通区域

本文详细介绍了二值图像处理中的一种目标标记方法,通过创建标记矩阵、建立映射表和优化标记,实现连通区域的目标标记。通过三个实例展示算法步骤,便于理解和应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OCR处理主要包括图像分割,目标标记,目标识别三步。今天主要详细介绍一种基于连通区域的的目标标记方法,将给出算法步骤,并举例进行说明。

算法步骤

假设当前图像矩阵为F, 标记矩阵为L,(i,j)为图像中任意一点的坐标,LabelNum为当前标记数。

一 创建标记矩阵

对图像按行遍历,当出现目标点,即F(i,j−1)=0,F(i,j)=1F(i,j-1)=0, F(i,j)=1F(i,j1)=0,F(i,j)=1时:
则以(i,j)(i, j)(i,j)为起点,继续向右遍历,当满足以下条件时结束遍历:
1)出现背景点:F(i,k)=1,F(i,k+1)=0F(i,k)=1, F(i,k+1)=0F(i,k)=1,F(i,k+1)=0
2)行尾:F(i,k)=1,k+1=ImageWidthF(i,k)=1, k+1=ImageWidthF(i,k)=1,k+1=ImageWidth

对于当前第iii行得到的连通区域{ (i,y)∣y∈(j,k)}\{(i,y)| y \in (j, k)\}{ (i,y)y(j,k)},其所对应的上一行的连通区域为{ (i−1,y)∣y∈(j−1,k+1)}\{(i-1,y)| y \in (j-1, k+1)\}{ (i1,y)y(j1,k+1)},对{ (i−1,y)∣y∈(j−1,k+1)}\{(i-1,y)| y \in (j-1, k+1)\}{ (i1,y)y(j1,k+1)}进行遍历:
1)如果当前行为图像的第一行:$i=0 $ ;
2)如果当前行为目标的起始行:F(i−1,y)=0,y∈(j−1,k+1)F(i-1, y)=0, y \in(j-1, k+1)F(i1,y)=0,y(j1,k+1)
则将当前标记数加1(LabelNum++LabelNum++LabelNum++),对 { (i,y)∣y∈(j,k)}\{(i,y)| y \in (j, k)\}{ (i,y)y(j,k)}进行标记,并记录第i行与上一行连通区域的标记数,记为[LabelNum,LabelNum][LabelNum, LabelNum][LabelNum,LabelNum]
3)如果第i行为目标的中间行,则找到{ (i−1,y)∣y∈(j−1,k+1)}\{(i-1,y)| y \in (j-1, k+1)\}{ (i1,y)y(j1,k+1)}内的所有连通区域,以第一个连通区域的标记数对{ (i,y)∣y∈(j,k)}\{(i,y)| y \in (j, k)\}{ (i,y)y(j,k)}进行标记,并记录所有连通区域的的标记数,比如:[LabelNum,LabelNum],[LabelNum,LabelNum2],[LabelNum,LabelNum3][LabelNum, LabelNum], [LabelNum, LabelNum2], [LabelNum, LabelNum3][LabelNum,LabelNum],[LabelNum,LabelNum2][LabelNum,LabelNum3]

二 创建标记数映射表

对所有标记数记录进行遍历,假设对于任意一个标记数记录[LabelNumcur,LabelNumlast][LabelNum_{cur}, LabelNum_{last}][LabelNumcur,LabelNumlast]
1)如果LabelNumcur=LabelNumlastLabelNum_{cur} = LabelNum_{last}LabelNumcur=LabelNumlast,则Map[LabelNumcur]=LabelNumcurMap[LabelNum_{cur}] = LabelNum_{cur}Map[LabelNumcur]=LabelNumcur
2)如果LabelNumcur≠LabelNumlastLabelNum_{cur} \neq LabelNum_{last}LabelNumcur̸=LabelNumlast,则Map[LabelNumcur]=LabelNumlastMap[LabelNum_{cur}] = LabelNum_{last}Map[LabelNumcur]=LabelNumlast,或者Map[LabelNumlast]=LabelNumcurMap[LabelNum_{last}] = LabelNum_{cur}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值