写一篇python代码,用OpenCV库实现识别图像中的多个椭圆轮廓,并依次输出椭圆中心坐标并在图片中以红点标注
时间: 2023-06-04 15:05:57 浏览: 165
Python Opencv实现图像轮廓识别功能
5星 · 资源好评率100%
非常感谢您的问题。以下是您需求的Python代码实现,要求利用OpenCV库识别图像中的多个椭圆轮廓,并将每一个椭圆的中心坐标输出,并在图片中使用红点标注:
```
import cv2
# 加载图像
img = cv2.imread('your_image_path.jpg')
# 转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 进行高斯滤波
blur = cv2.GaussianBlur(gray, (5,5), 0)
# 检测椭圆轮廓
contours, hierarchy =
cv2.findContours(blur, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 遍历每一个椭圆轮廓
for cnt in contours:
if cnt.shape[0] >= 5: # 至少拟合5个点的椭圆
(x,y), (MA,ma), angle = cv2.fitEllipse(cnt)
# 输出中心坐标
print("Center: ({}, {})".format(int(x), int(y)))
# 在图像中绘制红点标注
cv2.circle(img, (int(x), int(y)), 3, (0,0,255), -1)
# 显示图像
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,以上代码针对的是RGB格式的图片,若您的图片格式不同,可以根据需要进行转换或修改参数。如果您有任何问题或需要进一步帮助,请随时联系我。
阅读全文