项目记录-圆形边缘修正方法探索2

针对圆形边缘分割偏离问题,本文探讨两种修正方法。方法1通过判断边缘点两侧邻域掩模状态,用最近掩模点替换偏离点。方法2不再考虑弧间平滑过渡,从中心出发沿径向寻找掩模边界进行替换,以改善效果。
摘要由CSDN通过智能技术生成

问题:目前分割得到的圆形边缘和理想边缘相比,部分向外偏离,需要向内收缩 探索方法1: 假设在理想情况下,圆形物体的掩膜是绝对正确的。此时可以遍历当前的边缘点,判断每个边缘点的两侧的掩膜标记是否不同。如果两侧的邻域点掩膜都为0,说明该边缘点偏外,需要向内收缩,使用最近的掩膜点来替换掉越界了的点。
探索方法2:
在前一种方法中,使用最近的掩膜点来替换掉越界了的点,实践效果不理想,下面改进的方法是
1、 不再考虑前后两个弧之间的光滑过渡问题,对每段弧单独处理;
2、从中心开始,尝试向该点移动,第一次碰到掩膜边界时停止移动,用该点来替换。


//找出两侧都是0的点,说明此处需要收缩
    while(i < vecCurContour.size()-1)
    {
        Pt2D curPos(vecCurContour[i]);
        Pt2D nextPos(vecCurContour[i+1]);
        int diffx=nextPos.x-curPos.x;
        int diffy=nextPos.y-curPos.y;
        Pt2D sideA={curPos.x+diffy, curPos.y-diffx};
        Pt2D sideB={curPos.x-diffy, <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值