生活百科知识

经验知识首页 > 书画音乐 > 详细经验讲解内容页

[视频]opencv轮廓检测——等距曲线

关于周震南房产证opencv轮廓检测——等距曲线,期待您的经验分享,千言万语,表达不了我的感激之情,我已铭记在心 !
无情天魔精致 2018-10-18 10:22:16 16398人看过 分享经验到微博

更新:2024-02-18 16:04:45头条经验

来自爱奇艺https://www.iqiyi.com/的优秀用户无情天魔精致,于2018-10-18在生活百科知识平台总结分享了一篇关于“opencv轮廓检测——等距曲线鬼谷子”的经验,非常感谢无情天魔精致的辛苦付出,他总结的解决技巧方法及常用办法如下:

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

工具/原料

电脑python3.6

方法/步骤

1/5分步阅读

使用下图,图中有三个没有空洞的物体,因此可以检测出三个轮廓。

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/5

我们选择第一个物体的轮廓线,看看(50,50)这个点到轮廓线的距离:

cnt=c[0]

d = cv2.pointPolygonTest(cnt,(50,50),True)

[图]3/5

到第一个物体的轮廓线,距离为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/5

距离为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/5

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

[图][图][图]

编辑于2018-10-18,内容仅供参考并受版权保护

经验备注

我发现了这篇经验很有用:你也认同《opencv轮廓检测——等距曲线》的经验分享有价值,就请和朋友们一起分享吧。另外,opencv轮廓检测——等距曲线的经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。经验知识实用生活指南-解决你所有的生活难题!未经许可,谢绝转载。

本文网址:https://www.5058.cn/article/1876c8525bdc23890a13767a.html

下一篇