边缘提取

边缘提取思路:

从上到下,从左到右找到第一个标记点,以该点为起点,在其3*3邻域内寻找下一个边缘点,邻域点按照逆时针方向依序编号:
1 2 3
0    4
7 6 5

原则上对每个点的邻域,从编号0开始,逆时针查找每一个点是否是标记点,但是这样会产生重复查找,所以每次需要计算一个新的起点来减少避免这种不必要的重复。

A为起点

以起点为例,由于它是由上至下,由左至右的第一个标记点,则可以确定其邻域中的0,1,2,3点都是非标记点,下一个查找点可以直接从4开始。

B为新的中心点

接下来以4作为新的中心点,查找其邻域点。由于4的邻域点中编号0,1,2分别对应着起点邻域中编号起点、2、3的点,且这三个点都不需要再次判断,所以直接从3开始查找:

if (dir % 2 == 0)
{
    dir = (dir + 7) % 8;
}

另一种情况,假设起点邻域中的4非标记点,则继续判断5,如果5是标记点,则以5作为新的中心点。5的邻域中编号为1,2的点对应着起点邻域中编号为起点、4的点,这两个点不需要再次查找了,可以直接从编号3开始判断:

B为新的中心点


else
{
    dir = (dir + 6) % 8;
}

查找的结束条件就是新找到的点等于起点,变成了封闭的环,即可结束查找。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值