opencv轮廓颜色识别
时间: 2023-09-16 16:13:01 浏览: 130
opencv颜色识别
要识别轮廓的颜色,需要进行以下步骤:
1. 将图像转换为HSV颜色空间。
2. 创建一个掩码,使得只有感兴趣的颜色被保留。
3. 对掩码进行形态学操作,使得轮廓更加明显。
4. 使用cv2.findContours()函数来查找图像中的轮廓。
5. 对每个轮廓使用cv2.drawContours()函数绘制它们。
下面是一个基本的示例代码:
```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)
# 对掩码进行形态学操作
kernel = np.ones((5,5),np.uint8)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
# 查找轮廓
contours, hierarchy = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
cv2.drawContours(img, contours, -1, (0,255,0), 2)
# 显示图像
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,图像被转换为HSV颜色空间,并且我们定义了一个范围来保留蓝色的颜色。然后创建了一个掩码,对它进行形态学操作,最后查找轮廓并绘制它们。
阅读全文