利用Hough圆变换检测检测图像stars.jpg中的星球轮廓,并在原图中绘制出来
时间: 2024-05-20 13:14:15 浏览: 143
以下是利用Hough圆变换检测stars.jpg中的星球轮廓,并在原图中绘制出来的Python代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('stars.jpg')
# 将图像转换为灰度图
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 对图像进行高斯滤波
blur = cv2.GaussianBlur(gray, (5,5), 0)
# 进行Hough圆变换
circles = cv2.HoughCircles(blur, cv2.HOUGH_GRADIENT, 1, 20, param1=50, param2=30, minRadius=0, maxRadius=0)
# 将检测到的圆的坐标和半径取整
circles = np.uint16(np.around(circles))
# 绘制检测到的圆
for i in circles[0,:]:
# 绘制圆心
cv2.circle(img,(i[0],i[1]),2,(0,255,0),3)
# 绘制圆周
cv2.circle(img,(i[0],i[1]),i[2],(0,0,255),2)
# 显示原图和检测结果
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行结果如下图所示:
![stars_detected](https://img-blog.csdnimg.cn/20211203222114238.png)
阅读全文