opencv对人像进行颜色识别后轮廓绘制完整代码
时间: 2024-12-14 07:20:18 浏览: 10
在OpenCV库中,进行人像颜色识别并绘制轮廓通常涉及图像预处理、色彩空间转换、分割以及轮廓检测等步骤。以下是一个基本的Python示例,展示了如何使用OpenCV实现这个过程:
```python
import cv2
import numpy as np
# 加载图片
img = cv2.imread('input_image.jpg')
# 转换为HSV空间(更容易区分颜色)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 定义感兴趣的颜色范围,这里假设我们想识别红色人脸
lower_red = np.array([0, 50, 50])
upper_red = np.array([10, 255, 255]) # 这里是个简化例子,实际应用中需要更精细的阈值设定
mask = cv2.inRange(hsv, lower_red, upper_red) # 创建一个红色区域的掩码
# 执行膨胀操作以连接边缘,减少噪声影响
kernel = np.ones((5,5),np.uint8)
mask = cv2.dilate(mask,kernel,iterations = 1)
# 寻找轮廓
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 绘制轮廓
for contour in contours:
x,y,w,h = cv2.boundingRect(contour)
img = cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) # 绿色表示识别到的人脸区域
# 显示结果
cv2.imshow('Color Detection', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
阅读全文