热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

二值图像快速细化算法

二值图像的细化是讨论将一个图像中的黑色部分沿着它的中心轴线将其细化为一个像素宽的线条的处理过程,细化的结果能基本保留图形中黑色部分的拓扑结构。图像细化是图像模式识别的

  二值图像的细化是讨论将一个图像中的黑色部分沿着它的中心轴线将其细化为一个像素宽的线条的处理过程,细化的结果能基本保留图形中黑色部分的拓扑结构。图像细化是图像模式识别的关键步骤。快速细化算法的思想是优化了原细化算法中由边界逐层消除黑色像素点的过程,提高细化效率。


                                 细化前                                                                                                细化后(灰色为去除点)


细化算法

本算法基于逐层剥取理念,快速细化算法改进了反复扫描的过程,顺序、逆序搜索两次,确定每个点的层数,通过层数可判断该点属于边界点还是骨架, 因而优化算法的效率,大量减少程序运算时间。


算法步骤:


假设黑色值为1,白色为0.

第一步,从上到下,从左到右依次扫描每一个点,若当前点(x,y)为黑点时,需判断其右上、上、左上和左四点的情况。(x-1,y+1) (x-1,y) (x-1,y-1) (x,y-1) 这四点可以理解为当前点是被该四点包围,该点层数即四点层数最小值多一层;如果当前点(x,y)为白色,层数值赋为0。



第二步,自下而上,自右而左,与第一步相似的判断每个点的状态,若当前点是黑点,于是判断其左下、下、右下和右四点的情况(图6)。(x+1,y-1) (x+1,y) (x+1,y+1) (x,y+1)四点包围了当前点,同样取这四点层数的最小值加1 作为该点层数值;如果当前点(x,y)为白色,层数值赋为0。


与此同时,既然已经求得每一个点上包围层数值和下包围层数值,每个点的实际层数其实就是两种层数值中最小值(图7)。

M[x][y]=Min(F[x][y],G[x][y])



第三步,从上到下,从左到右依次扫描每一个点,此时需要判断该点8 方向(图7)范围内所有点层数的情况。如果当前点的层数值是周围相邻点中最大,该点即保留;如果当前点的层数值并非最大,该点即可删去。

M[x][y]==Max(M[x+i][y+i]│(-1<=i,j<=1))? 保留:删去


综上步骤,即完成了该图像细化的全部过程,算法只需遍历3 次,就能将一幅图像进行快速细化。

  MATLAB代码
%二值化   
binary=imread('PIC_NAME');
[high,weight]=size(binary);
F=zeros(high,weight);
G=zeros(high,weight);
M=zeros(high,weight);
out=zeros(high,weight);
for i=2:high-1
    for j=2:weight-1
        if binary(i,j)==0
            F(i,j)=0;
        else
            mi=[F(i,j-1),F(i-1,j-1),F(i-1,j),F(i-1,j+1)];
            F(i,j)=min(mi)+1;
        end
    end
end
for i=high-1:-1:2
    for j=weight-1:-1:2
        if binary(i,j)==0
            G(i,j)=0;
        else
            mi=[G(i+1,j-1),G(i+1,j),G(i+1,j+1),G(i,j+1)];
            G(i,j)=min(mi)+1;
        end
    end
end


for i=2:high-1
    for j=2:weight-1
        mi=[F(i,j),G(i,j)];
        M(i,j)=min(mi);
    end
end


for i=2:high-1
    for j=2:weight-1
        ma=[M(i,j-1),M(i-1,j-1),M(i-1,j),M(i-1,j+1),M(i+1,j-1),M(i+1,j),M(i+1,j+1),M(i,j+1)];
        if M(i,j)==max(ma)
            out(i,j)=M(i,j);
        else
            out(i,j)=0;
        end
    end
    
end


imshow(out);








            
        





推荐阅读
  • 近年来,大数据成为互联网世界的新宠儿,被列入阿里巴巴、谷歌等公司的战略规划中,也在政府报告中频繁提及。据《大数据人才报告》显示,目前全国大数据人才仅46万,未来3-5年将出现高达150万的人才缺口。根据领英报告,数据剖析人才供应指数最低,且跳槽速度最快。中国商业结合会数据剖析专业委员会统计显示,未来中国基础性数据剖析人才缺口将高达1400万。目前BAT企业中,60%以上的招聘职位都是针对大数据人才的。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文讨论了同事工资打听的话题,包括同工不同酬现象、打探工资的途径、为什么打听别人的工资、职业的本质、商业价值与工资的关系,以及如何面对同事工资比自己高的情况和凸显自己的商业价值。故事中的阿巧发现同事的工资比自己高后感到不满,通过与老公、闺蜜交流和搜索相关关键词来寻求解决办法。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 如何配置小米wifi放大器来增强家庭无线路由器信号?
    本文介绍了如何通过配置小米wifi放大器来增强家庭无线路由器信号的方法。通过打开米家APP,选择设备添加,搜索并选择需要添加的wifi放大器,根据系统提示进行下一步操作即可完成配置。配置完成后,家庭无线路由器信号将得到增强。 ... [详细]
  • Win10下游戏不能全屏的解决方法及兼容游戏列表
    本文介绍了Win10下游戏不能全屏的解决方法,包括修改注册表默认值和查看兼容游戏列表。同时提供了部分已经支持Win10的热门游戏列表,帮助玩家解决游戏不能全屏的问题。 ... [详细]
  • 本文讨论了如何在不使用SearchBar display controller的情况下,单独使用SearchBar并捕获其textChange事件。作者介绍了实际状况,即左侧SliderMenu中的SearchBar需要在主页TableView中显示搜索结果。然后,作者提供了解决方案和步骤,帮助读者实现这一功能。 ... [详细]
  • 本文介绍了新款奇骏的两个让人上瘾的功能,分别是智能互联系统和BOSE音响。通过对新款奇骏的配置和功能进行评测,探讨了这两个新增功能的使用体验和优势。此外,还介绍了新款奇骏的其他配置和改进,如增加的座椅和驾驶辅助系统,以及内饰的舒适性提升。对于喜欢音响的消费者来说,BOSE音响的升级也是一个亮点。最后,文章提到了BOSE音响的数字还原能力,以及7座版无法配备BOSE音响的原因。 ... [详细]
  • 电脑公司win7剪切板位置及使用方法
    本文介绍了电脑公司win7剪切板的位置和使用方法。剪切板一般位于c:\windows\system32目录,程序名为clipbrd.exe。通过在搜索栏中输入cmd打开命令提示符窗口,并输入clip /?即可调用剪贴板查看器。赶紧来试试看吧!更多精彩文章请关注本站。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • Excel数据处理中的七个查询匹配函数详解
    本文介绍了Excel数据处理中的七个查询匹配函数,以vlookup函数为例进行了详细讲解。通过示例和语法解释,说明了vlookup函数的用法和参数的含义,帮助读者更好地理解和运用查询匹配函数进行数据处理。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
author-avatar
西南科技大学地质协会_927
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有