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

一、问题描述

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

二、学习链接

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,知识面拓宽)