opencv python中2条轮廓线之间的中线?

问题描述 投票:0回答:2

我有图片

“基本图像”“>

我的代码运行后,

新图像是

“第二张图像”

我需要这样找到它们之间的界线

“”

我该怎么办?

我的代码

import numpy as np
import cv2
import cv2 as cv

ima = cv2.imread('track1.pNg')
imgray = cv2.cvtColor(ima,cv2.COLOR_BGR2GRAY)
im = cv2.cvtColor(ima,cv2.COLOR_BGR2GRAY)






imm = cv2.inRange(im,(0),(49)) 

kernel = np.ones((5,5),np.uint8)
gradient = cv2.morphologyEx(imm, cv2.MORPH_GRADIENT, kernel)
il = cv2.dilate(gradient, kernel, iterations=7)
ol = cv2.erode(il, kernel, iterations=7)


contours,hei = cv2.findContours(ol,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
img = cv2.drawContours(ima, contours, -1, (200,255,0), 3)


cv2.imshow('window',ima)

我该如何实现?

我有一个图像,我的代码运行之后,新的图像是我需要像这样找到它们之间的线。我该怎么办?我的代码将numpy导入为np导入cv2导入cv2为cv ima = cv2.imread('track1 ....

python opencv contour
2个回答
0
投票

此答案说明了如何找到在形状的两侧之间延伸的线。可以通过迭代侵蚀图像来找到中心。


0
投票

这是通过使用距离变换和礼帽形态在OpenCV中进行骨架化的另一种方法(无需显式迭代)。>>

输入:

© www.soinside.com 2019 - 2024. All rights reserved.