基于Python-OpenCV实现蓝色物体检测并打印中心坐标
时间: 2024-04-17 21:08:06 浏览: 159
可以的,以下是基于 Python-OpenCV 实现蓝色物体检测并打印中心坐标的代码:
```python
import cv2
# 定义蓝色区域的 HSV 范围
lower_blue = (110, 50, 50)
upper_blue = (130, 255, 255)
# 打开摄像头,读取每一帧图像
cap = cv2.VideoCapture(0)
while True:
# 读取一帧图像
ret, frame = cap.read()
if not ret:
break
# 将图像从 BGR 转换到 HSV
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
# 根据定义的 HSV 范围寻找蓝色区域
mask = cv2.inRange(hsv, lower_blue, upper_blue)
# 对二值图像进行膨胀操作,用于填充可能出现的黑色空洞
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
mask = cv2.dilate(mask, kernel)
# 计算蓝色区域的中心坐标
moments = cv2.moments(mask)
center_x = int(moments['m10'] / moments['m00']) if moments['m00'] else 0
center_y = int(moments['m01'] / moments['m00']) if moments['m00'] else 0
# 在图像上绘制圆形和中心点
cv2.circle(frame, (center_x, center_y), 10, (0, 0, 255), -1)
cv2.circle(frame, (center_x, center_y), 50, (0, 0, 255), 2)
# 显示图像
cv2.imshow('frame', frame)
# 按 'q' 键退出循环
if cv2.waitKey(1) == ord('q'):
break
# 释放资源并关闭窗口
cap.release()
cv2.destroyAllWindows()
```
运行上述代码,即可在打开的摄像头窗口中检测蓝色物体并打印它的中心坐标。
阅读全文