怎么从xld轮廓点中提取到轮廓边缘点
时间: 2024-04-16 21:07:32 浏览: 49
要从xld轮廓点中提取轮廓边缘点,您可以使用以下步骤:
1. 使用gen_contour_polygon函数将xld轮廓点转换为多边形。
2. 对多边形进行轮廓检测,可以使用find_contours函数。
3. 将检测到的轮廓转换为边缘点,可以使用poly_to_edgelist函数。
下面是一个示例代码:
```
import numpy as np
import cv2
# 从图像中提取xld轮廓点
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
_, thresh = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
xld_contours = cv2.convertContoursToHierarchical(contours)
# 将xld轮廓点转换为多边形
polygons = []
for contour in xld_contours:
polygon = cv2.gen_contour_polygon(contour)
polygons.append(polygon)
# 对多边形进行轮廓检测
edge_points = []
for polygon in polygons:
contours = cv2.findContours(polygon, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
edge_points.append(cv2.poly_to_edgelist(contour))
```
在上面的代码中,edge_points变量包含了所有检测到的轮廓边缘点。
阅读全文