opencv追踪小球
时间: 2023-08-03 16:08:07 浏览: 127
你可以使用 OpenCV 库来实现小球的追踪。下面是一个简单的示例代码,展示了如何使用颜色过滤和形态学操作来识别和跟踪小球。
```python
import cv2
import numpy as np
# 设置颜色阈值
lower_color = np.array([h_min, s_min, v_min]) # 设置颜色下限
upper_color = np.array([h_max, s_max, v_max]) # 设置颜色上限
# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
# 读取视频帧
ret, frame = cap.read()
# 转换颜色空间为 HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# 根据颜色阈值过滤图像
mask = cv2.inRange(hsv, lower_color, upper_color)
# 对二值图像进行形态学操作,去除噪声
kernel = np.ones((5, 5), np.uint8)
mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
# 寻找轮廓并绘制边界框
contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
area = cv2.contourArea(contour)
if area > min_area:
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示结果
cv2.imshow('Tracking', frame)
# 按下 'q' 键退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 清理资源
cap.release()
cv2.destroyAllWindows()
```
请注意,上述代码中的参数 `h_min`、`s_min`、`v_min`、`h_max`、`s_max`、`v_max`、`min_area` 根据你的实际需求进行调整。此外,你还可以根据需要添加其他的图像处理步骤来提高追踪效果。
阅读全文