opencv轮廓检测——等距曲线
1、使用下图,图中有三个没有空洞的物体,因此可以检测出三个轮廓。
import cv2
import numpy as np
img = cv2.imread('0.png')
a=img*1
u,v,_=img.shape
img0=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、对图片上面的每一个点,按照到轮廓线的距离进行着色。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:26
阅读量:84
阅读量:196
阅读量:51
阅读量:66