- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C实现Hilditch 细化算法
Hilditch 细化算法的C#实现 Hilditch 细化算法是经典的二值图像细化算法,然而,在网上却很难找到一个详细、正确的介绍和实现。可以找到一辆个 Hilditch 算法的C实现,但缺乏注释,代码可读性也很差。在期刊网上找到几篇论文,提及了Hilditch 算法,结果一篇说的罗哩罗嗦根本看不懂,另一篇说的说的易懂,却是错误的!拿来主义是行不通了,于是只好结合着这几个论文和代码,从头写 Hilditch 细化算法。 假设像素p的3×3邻域结构为: Hilditch 细化算法的步骤为: 对图像从左向右从上向下迭代每个像素,是为一个迭代周期。在每个迭代周期中,对于每一个像素p,如果它同时满足6个条件,则标记它。在当前迭代周期结束时,则把所有标记的像素的值设为背景值。如果某次迭代周期中不存在标记点(即满足6个条件的像素),则算法结束。假设背景值为0,前景值为1,则: 6个条件为: (I):p 为1,即p不是背景; (2):x1,x3,x5,x7不全部为1(否则把p标记删除,图像空心了); (3):x1~x8 中,至少有2个为1(若只有1个为1,则是线段的端点。若没有为1的,则为孤立点); (4):p的8连通联结数为1; 联结数指在像素p的3*3邻域中,和p连接的图形分量的个数: 上图中,左图的4连通联结数是2,8连通联结数是1,而右图的4联通联结数和8联通联结数都是2。 4连通联结数计算公式是: 8连通联结数计算公式是: 其中, ? 至于公式怎么来的就不管了,直接用就行了。 (5)假设x3已经标记删除,那么当x3为0时,p的8联通联结数为1; (6)假设x5已经标记删除,那么当x5为0时,p的8联通联结数为1。 ====== 在程序中,我使用的是这样的邻域编码: 为了方便计算联结数,以0作为前景,1作为背景。程序如下(完整程序见:/svn/trunk/src/Orc.SmartImage.Common/UnmanagedImage/ImageU8.cs): /// summary /// 计算八联结的联结数,计算公式为: ///???? (p6 - p6*p7*p0) + sigma(pk - pk*p(k+1)*p(k+2)), k = {0,2,4) /// /summary /// param name=list/param /// returns/returns private unsafe Int32 DetectConnectivity(Int32* list) { ??? Int32 count = list[6] - list[6] * list[7] * list[0]; ??? count += list[0] - list[0] * list[1] * list[2]; ??? count += list[2] - list[2] * list[3] * list[4]; ??? count += list[4] - list[4] * list[5] * list[6]; ??? return count; } private unsafe void FillNeighbors(Byte* p, Int32* list, Int32 width, Byte foreground = 255) { ??? // list 存储的是补集,即前景点为0,背景点为1,以方便联结数的计算 ??? list[0] = p[1] == foreground ? 0 : 1; ??? list[1] = p[1 - width] == foreground ? 0 : 1; ??? list[2] = p[-width] == foreground ? 0 : 1; ??? list[3] = p[-1 - width] == foreground ? 0 : 1; ??? list[4] = p[-1] == foreground ? 0 : 1; ??? list[5] = p[-1 + width] == foreground ? 0 : 1; ??? list[6] = p[width] == foreground ? 0 : 1; ??? list[7] = p[1 + width] == foreground ? 0 : 1; } /// summary /// 使用 hilditch 算法进行细化 /// /summary public unsafe void Thinning(Byte foreground = 255) { ??? Byte* start = this.Start; ??? Int32 width = this.Widt
您可能关注的文档
- 2012考研数学高分必备宝典海文考研大礼包.doc
- 2012银行业从业人员资格考试个人理财模拟22(含答案解析试题).doc
- 2012银行业从业人员资格考试个人理财模拟24(含答案解析试题).doc
- 2012高一英语教案:Unit11 Lesson 2 The Paparazzi第一课时(北师大版必修4)( 2013高考).doc
- 2012高考理科数学讲析练学案第1章 集合与函数概念第2讲 函数与映射的概念.doc
- 2012高考化学第一轮复习 第13单元 烃课件 大纲人教版.ppt
- 20130904辰溪商业房产调研报告.doc
- 2013北师大版高一历史必修1电子题库 第一单元 单元检测评估 Word版含答案( 2013高考).doc
- 2013工业企业财务制度实施模板.doc
- 2013全国各地高考化学试题详解及评点15套).doc
最近下载
- 新版VDA6.3-2023过程审核精品教程(培训课件).pptx VIP
- 2025贵州黔东南州凯里市选聘城市社区工作者150人备考练习试题及答案解析.docx VIP
- 防恐反恐教育培训制度.docx VIP
- 2025贵州黔东南州凯里市选聘城市社区工作者150人笔试备考试题及答案解析.docx VIP
- 四川省事业单位综合知识针对四川讲义国情省情.pdf VIP
- ZOOM声乐乐器F8n Pro Operation Manual说明书用户手册.pdf
- 宁波市送达地址确认书.pdf VIP
- 内蒙古军航钨钼稀土科技有限公司钨、钼制品生产项目环境影响报告表.pdf VIP
- 【抗战胜利80周年】铭记伟大胜利汲取奋进力量抗战胜利80周年.pptx VIP
- 工程高大模板工程监理实施细则.doc VIP
文档评论(0)