一、问题描述

同学偶然问我问题,怎么画出一个轮廓的中心轮廓。然后我回去查了一下,其实发现这个其实有专门的算法叫做细化算法。在OCR文字提取并描绘出来中非常常见。现在大致分享一下我查到的一些比较关键的内容及放上几个我参考的链接。
细化算法干的事呢就是画出轮廓的中心线~ 得到图中虚线的那一条。

二、学习链接

https://answers.opencv.org/question/31908/how-do-i-detect-the-centerline-of-an-object/ 这个是一个大神源代码实现

https://docs.opencv.org/3.2.0/df/d2d/group__ximgproc.html 这个呢是OpenCV的拓展库实现

https://www.youtube.com/watch?v=iOtodmhfMfU 这个是YouTube上的大神实例,下面有附赠代码链接

三、总结

在实际工程项目中呢,我们总会遇到很多问题是OpenCV基础算法没有的。除了在想能不能把复杂问题变为一般问题外(例如找曲线能不能变成找直线用霍夫变换等)还可以多上谷歌查一下。切记上谷歌一定要用英文关键字去搜索。其实我们遇到的很多问题GOOGLE上都有大神做到了,或者已经有了挺多成熟的算法,但是只是自己知识面比较浅薄而已~ 所以大家在工程中如果实在想不到怎么解决的时候可以多Google,解锁自己的搜索技能~ 因为想要准确的用英文表达自己的问题还是需要一定锻炼的。ヾ(◍°∇°◍)ノ゙

四、算法详解

这是我对该算法的具体分析:

https://blog.csdn.net/weixin_40977054/article/details/96888371
希望能帮助到各位~

OpenCV-细化算法(thinning algorithm)描绘出轮廓的中心线相关推荐

  1. OpenCV-细化算法(thinning algorithm)算法详解——提取二值图的骨架

    昨天不是说同学问我怎么绘制出轮廓的中心线.然后我上网查了一下其实这个有专门的算法叫做细化算法.用专业术语去描述绘制出轮廓的中心线叫做(提取图像的骨架).然后这一篇博客呢是我对这个细化算法的解读与实操~ ...

  2. 图像处理之细化算法(Thinning Algorithm)C++实现

    最近在实验室里遇到了一个问题,就是在有一张轮廓二值图的情况下,如何才能将轮廓进行细化,得到轮廓的骨架. 效果如图: 可以看到,右边图中的数字变瘦了,这就是细化算法的作用 下面我们来讲一下,Thinin ...

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

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

  4. OpenCV每日函数 thinning函数(细化)

    一.概述 图像的细化主要是针对二值图而言,对一副二值图像进行骨架提取,就是删除不需要的轮廓点,只保留其骨架点.假设一个像素点,我们定义该点为p1,则它的八邻域点p2->p9位置,该算法考虑p1点 ...

  5. opencv 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数

    凸包convexHull.道格拉斯-普克算法Douglas-Peucker algorithm.approxPloyDP 函数 道格拉斯-普克算法(Douglas–Peucker algorithm) ...

  6. OpenCV 学习笔记03 凸包convexHull、道格拉斯-普克算法Douglas-Peucker algorithm、approxPloyDP 函数...

    凸形状内部的任意两点的连线都应该在形状里面. 1 道格拉斯-普克算法 Douglas-Peucker algorithm 这个算法在其他文章中讲述的非常详细,此处就详细撰述. 下图是引用维基百科的.ε ...

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

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

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

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

  9. 【opencv-c++】cv::ximgproc::thinning图像细化算法

    [opencv-c++]cv::ximgproc::thinning图像细化算法 1.背景 2.示例 3.说明 1.背景 cv::ximgproc::thinning函数官方文档: https://d ...

最新文章

  1. 基于Python, Selenium, Phantomjs无头浏览器访问页面
  2. 浅谈 MySQL 集群高可用架构
  3. CRF和HMM区别不仅仅前者是判别模型后者是生成模型
  4. openwrt 安装 ser2net 配置
  5. 后门BROOTKIT代码学习和原理分析
  6. 如何用MLflow做机器学习实验效果比对
  7. golang实现dns域名解析(一)
  8. e3d教程做logo教程_看了教程还是不会做平面设计?关键的方法给你揭秘!附450集教程...
  9. Oracle 练习题P256
  10. android重新打开应用程序,关于安卓应用后台运行后,重新进入,应用重新打开问题...
  11. 对话(Dialog)
  12. Atitit.软件命名空间  包的命名统计 及命名表(2000个名称) 方案java package
  13. Modelsim SE-64 10.4版本在WIN10-64位下找不到LICENSE的解决办法
  14. CentOS7部署k8s集群
  15. win10系统安装Webloic12C操作方法
  16. 大学计算机基础与实训教程第,大学计算机基础与实训教程
  17. 山东联通某地市分公司科技岗面经+经验分享
  18. Java 导出富文本到Word(包含图片)
  19. 2023最新WSL搭建深度学习平台教程(适用于Docker-gpu、tensorflow-gpu、pytorch-gpu)
  20. c++课程设计之贪食蛇

热门文章

  1. App开屏页如何设计?来看这五个常用的方法
  2. 怎样更改计算机文件名,电脑如何批量修改文件名|批量修改文件名的几个小方法...
  3. 微信二次分享(标题、摘要、缩略图)
  4. 为什么精英这样用脑不会累
  5. (转)汇编bne的问题
  6. STM32+LCD实现简单的贪吃蛇小游戏
  7. 5种经典程序化日内交易策略
  8. cdr多页面排版_CDR排版跨页图片的制作方法
  9. 文本文件和二进制文件的区别和联系
  10. python随机生成一个数字_如何实现python随机生成数字?