基于Python -OpenCV实现蓝色物体检测并打印中心坐标
时间: 2024-04-22 22:05:04 浏览: 30
您好,非常感谢您的提问。针对您的问题,我可以给出以下实现方案:
首先需要安装 OpenCV 库,可以使用 pip install opencv-python 命令进行安装。接下来,您可以使用以下 Python 代码实现蓝色物体检测并打印中心坐标:
```python
import cv2
cap = cv2.VideoCapture(0) # 打开摄像头
while True:
ret, frame = cap.read() # 读取摄像头数据
if not ret: # 如果读取失败,则结束循环
break
# 将图像转换为 HSV 颜色空间
hsv = cv2.cvtColor(frame, 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)
# 寻找轮廓
contours, hierarchy = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
if contours: # 如果找到轮廓
# 获取最大轮廓
max_contour = max(contours, key=cv2.contourArea)
# 获取最小外接圆
(x, y), radius = cv2.minEnclosingCircle(max_contour)
center = (int(x), int(y))
radius = int(radius)
# 将圆心用红色点标出来
cv2.circle(frame, center, 5, (0, 0, 255), -1)
# 打印圆心坐标
print(f"The center of the blue object is: ({x:.2f}, {y:.2f})")
# 显示图像
cv2.imshow("frame", frame)
if cv2.waitKey(1) == 27: # 如果按下 ESC 键,退出循环
break
cap.release() # 释放摄像头
cv2.destroyAllWindows() # 关闭窗口
```
希望这个代码能够帮到您,需要注意的是,根据摄像头的不同可能需要进行一定的参数调整才能够得到最佳检测效果。如果您有其他关于 AI、机器学习或编程的问题,随时欢迎向我提问。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![apk](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)