python 颜色识别程序示例
时间: 2024-01-05 19:13:49 浏览: 85
Python 颜色识别
好的,以下是一个简单的 Python 颜色识别程序示例:
首先安装必要的库:OpenCV 和 NumPy。
```
pip install opencv-python numpy
```
接着,复制以下代码并保存为 `color_detection.py` 文件。
```
import cv2
import numpy as np
# 创建与显示窗口
cv2.namedWindow("Color Detection")
cv2.namedWindow("Mask")
cv2.namedWindow("Result")
# 在窗口中创建滑动条来调整阈值
cv2.createTrackbar("Lower H", "Color Detection", 0, 179, lambda x:x)
cv2.createTrackbar("Lower S", "Color Detection", 0, 255, lambda x:x)
cv2.createTrackbar("Lower V", "Color Detection", 0, 255, lambda x:x)
cv2.createTrackbar("Upper H", "Color Detection", 179, 179, lambda x:x)
cv2.createTrackbar("Upper S", "Color Detection", 255, 255, lambda x:x)
cv2.createTrackbar("Upper V", "Color Detection", 255, 255, lambda x:x)
# 读取图像
img = cv2.imread("test.jpg")
while True:
# 将图像转换到 HSV 颜色空间
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 获取滑动条的值
lower_h = cv2.getTrackbarPos("Lower H", "Color Detection")
lower_s = cv2.getTrackbarPos("Lower S", "Color Detection")
lower_v = cv2.getTrackbarPos("Lower V", "Color Detection")
upper_h = cv2.getTrackbarPos("Upper H", "Color Detection")
upper_s = cv2.getTrackbarPos("Upper S", "Color Detection")
upper_v = cv2.getTrackbarPos("Upper V", "Color Detection")
# 设定阈值并过滤出颜色
lower_color = np.array([lower_h, lower_s, lower_v])
upper_color = np.array([upper_h, upper_s, upper_v])
mask = cv2.inRange(hsv, lower_color, upper_color)
# 对掩模进行开运算,去除噪声
kernel = np.ones((5,5), np.uint8)
opening = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
# 标记图像中的目标颜色
result = cv2.bitwise_and(img, img, mask=opening)
# 显示图像
cv2.imshow("Color Detection", hsv)
cv2.imshow("Mask", mask)
cv2.imshow("Result", result)
# 按下 ESC 键退出
if cv2.waitKey(1) == 27:
break
# 释放所有窗口和摄像头资源
cv2.destroyAllWindows()
```
接下来,运行该脚本并调整滑动条来筛选出图像中的特定颜色。程序会同时显示原始图像、掩模和标记出目标颜色的图像。按下 ESC 键退出程序。
注意:在程序运行期间,不要操作或移动该窗口。
阅读全文