帮我用python写一个提取图片蓝色部分坐标,并保存为一个数组的代码
时间: 2024-02-23 18:03:12 浏览: 17
好的,可以使用OpenCV库来实现这个功能。以下是一个示例代码,可以提取图片中蓝色部分的坐标并保存为一个numpy数组:
```python
import cv2
import numpy as np
# 读入图片
img = cv2.imread('image.jpg')
# 将图片转换为HSV格式
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 设定蓝色范围
lower_blue = np.array([110, 50, 50])
upper_blue = np.array([130, 255, 255])
# 提取蓝色部分的掩模
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# 寻找轮廓
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 提取轮廓坐标
points = []
for contour in contours:
for point in contour:
x, y = point[0]
points.append([x, y])
# 将坐标保存为numpy数组
points = np.array(points)
# 显示结果
cv2.imshow('image', img)
cv2.imshow('mask', mask)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例代码中,我们首先读入一张图片,并将其转换为HSV格式。然后设定蓝色范围,并使用`cv2.inRange`函数提取蓝色部分的掩模。
接着使用`cv2.findContours`函数寻找轮廓,并提取轮廓中的坐标。最后将坐标保存为numpy数组,并显示结果。
你只需要将代码中的`image.jpg`改为你要提取的图片路径即可。