在python中,怎样把二值图的轮廓点每一百个取一个样点,把样点坐标存在数组中呢...
时间: 2024-05-02 21:23:10 浏览: 46
你可以使用 `cv2.findContours()` 函数来获取二值图的轮廓,然后使用简单的循环和条件语句来筛选出每个轮廓中的每一百个点,最后存储到数组中。下面是一个示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('binary_image.png', 0)
contours, hierarchy = cv2.findContours(img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
contour_points = []
for contour in contours:
for i, point in enumerate(contour):
if i % 100 == 0:
x, y = point[0]
contour_points.append((x, y))
```
在这个示例中,我们使用 `cv2.imread()` 函数读入二值图像,并使用 `cv2.findContours()` 函数获取轮廓和层级信息。然后,我们循环遍历每个轮廓中的每个点,检查其索引是否是 100 的整数倍。如果是,我们将该点的坐标添加到 `contour_points` 数组中。
请注意,我们假设每个轮廓都是封闭的,因此最后的样点数组中将包含轮廓的起点和终点。如果你想要去掉这些点,只需添加一个简单的条件判断即可。
阅读全文