zoukankan      html  css  js  c++  java
  • 【CV】骨架提取

     ###Date: 2018.4.5   清明

    ============================================================

    图像的细化主要是针对二值图而言

    所谓骨架,可以理解为图像的中轴,,一个长方形的骨架,是它的长方向上的中轴线,

    圆的骨架是它的圆心,直线的骨架是它自身,孤立点的骨架也是自身。

    骨架的获取主要有两种方法:

    (1)基于烈火模拟

    设想在同一时刻,将目标的边缘线都点燃,火的前沿以匀速向内部蔓延,当前沿相交时火焰熄灭,

    火焰熄灭点的结合就是骨架。

    (2)基于最大圆盘

    目标的骨架是由目标内所有内切圆盘的圆心组成

    我们来看看典型的图形的骨架(用粗线表示)

    细化的算法有很多种,但比较常用的算法是查表法

    细化是从原来的图中去掉一些点,但仍要保持原来的形状。

    实际上是保持原图的骨架。

    判断一个点是否能去掉是以8个相邻点(八连通)的情况来作为判据的,具体判据为:

    1,内部点不能删除

    2,鼓励点不能删除

    3,直线端点不能删除

    4,如果P是边界点,去掉P后,如果连通分量不增加,则P可删除


    看看上面那些点。

    第一个点不能去除,因为它是内部点

    第二个点不能去除,它也是内部点

    第三个点不能去除,删除后会使原来相连的部分断开

    第四个点可以去除,这个点不是骨架

    第五个点不可以去除,它是直线的端点

    第六个点不可以去除,它是直线的端点

     

    对于所有的这样的点,我们可以做出一张表,来判断这样的点能不能删除

    我们对于黑色的像素点,对于它周围的8个点,我们赋予不同的价值,

    若周围某黑色,我们认为其价值为0,为白色则取九宫格中对应的价值

    对于前面那幅图中第一个点,也就是内部点,它周围的点都是黑色,所以他的总价值是0,对应于索引表的第一项

    前面那幅图中第二点,它周围有三个白色点,它的总价值为1+4+32=37,对应于索引表中第三十八项

    我们用这种方法,把所有点的情况映射到0~255的索引表中

     

    我们扫描原图,对于黑色的像素点,根据周围八点的情况计算它的价值,然后查看索引表中对应项来决定是否要保留这一点。


    ref:

    http://www.cnblogs.com/xianglan/archive/2011/01/01/1923779.html

    https://blog.csdn.net/haoji007/article/details/52063389

    本文为博主原创文章,未经博主允许不得转载。若允许转载,请注明来源https://www.cnblogs.com/SoaringLee/,否则保留追究法律责任的权利!另外,本人提供付费咨询服务并长期承接各类毕设以及外包项目。联系QQ:2963033731。加Q备注:CSDN外包
  • 相关阅读:
    触发器操作:在触发器中嵌套多个游标
    哈 希 表 的 操 作
    类的覆盖
    java、数据库中命名规则
    html中文字移动命令大全(摘录)
    java中四种过滤器
    日常生活收缩毛孔几个小妙招 生活至上,美容至尚!
    收缩毛孔全过程,很详细! 生活至上,美容至尚!
    懒人的七种超级减肥方法 生活至上,美容至尚!
    晚上美容护肤10要诀 生活至上,美容至尚!
  • 原文地址:https://www.cnblogs.com/SoaringLee/p/10532515.html
Copyright © 2011-2022 走看看