多语言展示
当前在线:1016今日阅读:195今日分享:14

opencv轮廓检测——等距曲线

在《用opencv检测轮廓》里面,我们学会了轮廓检测。本文,在检测轮廓的基础上,绘制轮廓的等距曲线。1用opencv检测轮廓
工具/原料
1

电脑

2

python3.6

方法/步骤
1

使用下图,图中有三个没有空洞的物体,因此可以检测出三个轮廓。import cv2import numpy as npimg = cv2.imread('0.png')a=img*1u,v,_=img.shapeimg0=cv2.cvtColor(255-img,cv2.COLOR_BGR2GRAY)_, t = cv2.threshold(img0, 0, 255, cv2.THRESH_BINARY)_, c, _ = cv2.findContours(t, 3, 2)

2

我们选择第一个物体的轮廓线,看看(50,50)这个点到轮廓线的距离:cnt=c[0]d = cv2.pointPolygonTest(cnt,(50,50),True)

3

到第一个物体的轮廓线,距离为6的曲线,有内外两条:for i in range(v):    for j in range(u):        d = cv2.pointPolygonTest(cnt,(i,j),True)        if int(abs(d))==6:            cv2.circle(img,(i,j),1,(0,255,0),-1)

4

距离为60的等距曲线只有一条:for i in range(v):    for j in range(u):        d = cv2.pointPolygonTest(cnt,(i,j),True)        if int(abs(d))==60:            cv2.circle(img,(i,j),1,(0,255,0),-1)

5

对图片上面的每一个点,按照到轮廓线的距离进行着色。

推荐信息