1、介绍

2、代码

import cv2
import numpy as np
import matplotlib.pyplot as plt# Zhang Suen thining algorythm
def Zhang_Suen_thining(img):# get shapeH, W, C = img.shape# prepare out imageout = np.zeros((H, W), dtype=np.int)out[img[..., 0] > 0] = 1# inverseout = 1 - outwhile True:s1 = []s2 = []# step 1 ( rasta scan )for y in range(1, H-1):for x in range(1, W-1):# condition 1if out[y, x] > 0:continue# condition 2f1 = 0if (out[y-1, x+1] - out[y-1, x]) == 1:f1 += 1if (out[y, x+1] - out[y-1, x+1]) == 1:f1 += 1if (out[y+1, x+1] - out[y, x+1]) == 1:f1 += 1if (out[y+1, x] - out[y+1,x+1]) == 1:f1 += 1if (out[y+1, x-1] - out[y+1, x]) == 1:f1 += 1if (out[y, x-1] - out[y+1, x-1]) == 1:f1 += 1if (out[y-1, x-1] - out[y, x-1]) == 1:f1 += 1if (out[y-1, x] - out[y-1, x-1]) == 1:f1 += 1if f1 != 1:continue# condition 3f2 = np.sum(out[y-1:y+2, x-1:x+2])if f2 < 2 or f2 > 6:continue# condition 4if out[y-1, x] + out[y, x+1] + out[y+1, x] < 1:continue# condition 5if out[y, x+1] + out[y+1, x] + out[y, x-1] < 1:continues1.append([y, x])for v in s1:out[v[0], v[1]] = 1# step 2 ( rasta scan )for y in range(1, H-1):for x in range(1, W-1):# condition 1if out[y, x] > 0:continue# condition 2f1 = 0if (out[y-1, x+1] - out[y-1, x]) == 1:f1 += 1if (out[y, x+1] - out[y-1, x+1]) == 1:f1 += 1if (out[y+1, x+1] - out[y, x+1]) == 1:f1 += 1if (out[y+1, x] - out[y+1,x+1]) == 1:f1 += 1if (out[y+1, x-1] - out[y+1, x]) == 1:f1 += 1if (out[y, x-1] - out[y+1, x-1]) == 1:f1 += 1if (out[y-1, x-1] - out[y, x-1]) == 1:f1 += 1if (out[y-1, x] - out[y-1, x-1]) == 1:f1 += 1if f1 != 1:continue# condition 3f2 = np.sum(out[y-1:y+2, x-1:x+2])if f2 < 2 or f2 > 6:continue# condition 4if out[y-1, x] + out[y, x+1] + out[y, x-1] < 1:continue# condition 5if out[y-1, x] + out[y+1, x] + out[y, x-1] < 1:continues2.append([y, x])for v in s2:out[v[0], v[1]] = 1# if not any pixel is changedif len(s1) < 1 and len(s2) < 1:breakout = 1 - outout = out.astype(np.uint8) * 255return out# Read image
img = cv2.imread("gazo.png").astype(np.float32)# Zhang Suen thining
out = Zhang_Suen_thining(img)# Save result
cv2.imwrite("out.png", out)
cv2.imshow("result", out)
cv2.waitKey(0)
cv2.destroyAllWindows()

3、结果

opencv打卡65: Zhang-Suen细化算法相关推荐

  1. 改进Zhang Suen细化算法的C#实现

    本文主要实现了改进Zhang Suen细化算法的C#实现,相关论文 :"牟少敏,杜海洋,苏平,查绪恒,陈光艺.一种改进的快速并行细化算法[J].微电子学与计算机,2013,(第1期)&quo ...

  2. C#:实现Zhang Suen细化算法(附完整源码)

    C#:实现Zhang Suen细化算法 #region xqpublic Bitmap zhang_thinimage_improve(Bitmap bmp){int imgWidth = bmp.W ...

  3. 图像处理之Zhang Suen细化算法

    在二值图像处理特别是OCR识别与匹配中,都要通过对字符进行细化以便获得图像的骨架,通过zhang-suen细化算法获得图像,作为图像的特征之一,常用来作为识别或者模式匹配. 一:算法介绍 Zhang- ...

  4. zhang 快速并行细化方法_一种改进的Zhang并行图像细化算法的制作方法

    本发明涉及图像处理技术,具体涉及一种改进的Zhang并行图像细化算法. 背景技术: 图像细化是将图像的线条从多像素宽度减少到单位像素宽度,简称骨架化.细化效果的好坏直接影响后期图像处理的效果.对于二值 ...

  5. 【youcans 的 OpenCV 例程200篇】127. 形态算法之细化

    欢迎关注 『youcans 的 OpenCV 例程 200 篇』 系列,持续更新中 欢迎关注 『youcans 的 OpenCV学习课』 系列,持续更新中 [youcans 的 OpenCV 例程 2 ...

  6. OpenCV学习(13) 细化算法(1)(转)

    1.转载链接:http://www.cnblogs.com/mikewolf2002/p/3321732.html 程序编码参考经典的细化或者骨架算法文章: T. Y. Zhang and C. Y. ...

  7. OpenCV学习(14) 细化算法(2)

    前面一篇教程中,我们实现了Zhang的快速并行细化算法,从算法原理上,我们可以知道,算法是基于像素8邻域的形状来决定是否删除当前像素.还有很多与此算法相似的细化算法,只是判断的条件不一样.在综述文章, ...

  8. 并行Zhang细化算法FPA算法

    并行Zhang细化算法 和 FPA算法 ,的规则好像完全一样. //  p9 p2 p3   //  p8 p1 p4   //  p7 p6 p5 前景点为1,背景点为0 条件1:p1为前景点 条件 ...

  9. OpenCV学习(17) 细化算法(5)

    本章我们看下Pavlidis细化算法,参考资料http://www.imageprocessingplace.com/downloads_V3/root_downloads/tutorials/con ...

最新文章

  1. mysql 查看当前事务id,MySQL 如何查询当前最新事务ID
  2. 使用容器的正确方式,Docker在雪球的技术实践
  3. R语言构建xgboost模型:模型的特性重要度计算及可视化、模型对应的结构树(文本文件)
  4. 如何在MySQL中进行FULL OUTER JOIN?
  5. mysql查询数据教程_MySQL 查询数据
  6. 全局内存BSS,DATA,RODATA的区别以及其他内存区间相关
  7. 《树莓派学习指南(基于Linux)》——第 2 章 开始探索 2.1 欢迎使用LXDE
  8. 天池项目总结,特征工程了解一下!(文末送书)
  9. 2018年计算机学校迎新标语,2018学校迎新标语大全.doc
  10. js实现一键复制到剪切板上_js实现各种复制到剪贴板的方法
  11. 基Java的高校毕业管理系统
  12. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_10_练习:集合元素处理(传统方式)...
  13. vue中显示实时时间
  14. 华为管理学案例分析_华为案例分析——管理学作业.ppt
  15. JAVA内存泄漏原因和检测工具
  16. 获取设备Mac地址和IP地址
  17. 教程集:一些基于MPC的开源播放器源码分析参考文章.
  18. 查找 Mac 的机型名称和序列号四种方法
  19. 水浒歪传--郭德纲相声
  20. 什么是 SAP Support Package Stack

热门文章

  1. 移动硬盘在mac上无法显示 读不出来
  2. 2012~2020年期货全品种TICK数据共享更新至2020.7.24
  3. css背景颜色和图片
  4. 华钜同创:亚马逊开店六个日常运营小技巧
  5. html实现下拉跳转
  6. 全球跨境电商平台有哪些?中国卖家占多少?
  7. 美团的战略、战术和能力圈 附下载地址
  8. #ps –ef_ps命令 – 显示进程状态
  9. 阿里云OSS对象存储
  10. 运动装备什么牌子好?运动装备品牌排行榜推荐