第二十二节:opencv提取中心线

哈哈,好久没写博客了(因为今天是1024,所以决定无论如何今天要水一篇),本来是打算写深度学习的,唉,还是后面有时间再写吧。提取目标图像的中心线,有两种方法(我知道的就这两种),这里就只介绍使用opencv的方法了

(一)环境配置

这里需要使用opencv的扩展模块(opencv-contrib-python),方法很简单。

pip install opencv-contrib-python -i https://pypi.douban.com/simple/

(二)代码实现

这里先对图像进行Otsu阈值处理,然后将得到图像传入cv2.ximgproc.thinning函数,就能得到我们需要的目标中心线。就是这么简单。看代码

import cv2

image = cv2.imread('2.jpg')
img=image.copy()

gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
ret,binary=cv2.threshold(gray,0,255,cv2.THRESH_BINARY|cv2.THRESH_OTSU)

thin=cv2.ximgproc.thinning(binary)

contours,hireachy=cv2.findContours(thin,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)

cv2.drawContours(image,contours,-1,(0,255,0),1)#还是原谅色

cv2.imshow('thin',image)
cv2.imshow('img',img)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下
在这里插入图片描述
哈哈,感觉还可以。太水了,自己都看不下去了。
全文刚好1024个字

(三)结语

学习opencv有很多的方法,我的建议是你可以加一些群,可以充分利用B站,CSDN,和百度。

在我的博客中,我不会讲解opencv的算法实现(当然我也不太会),我只会讲解一些函数的调用,不理解就多改一些参数,多尝试尝试,慢慢你就理解来。相信你总有一天可以说opencv不过“Ctrl+C,Crtl+V”

如果有什么错误的地方,还请大家批评指正,最后,希望小伙伴们都能有所收获。
在这里插入图片描述

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐