opencv python 如何获取图片中圆形区域中的亮斑
时间: 2024-03-01 10:55:07 浏览: 152
python+opencv识别图片中的圆形
要获取圆形区域中的亮斑,可以使用以下步骤:
1. 读取图片并将其转换为灰度图像。
2. 对灰度图像进行高斯模糊以减少噪声。
3. 使用Hough圆变换检测圆形区域。
4. 在检测到的圆形区域中提取亮斑。
以下是代码示例:
```python
import cv2
import numpy as np
# 读取图像并转换为灰度图像
img = cv2.imread('image.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)
# 在检测到的圆形区域中提取亮斑
if circles is not None:
circles = np.round(circles[0, :]).astype("int")
for (x, y, r) in circles:
roi = gray[y-r:y+r, x-r:x+r]
(minVal, maxVal, minLoc, maxLoc) = cv2.minMaxLoc(roi)
cv2.circle(img, (x, y), r, (0, 255, 0), 2)
cv2.circle(img, (x+minLoc[0]-r, y+minLoc[1]-r), 5, (0, 0, 255), -1)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们使用`cv2.HoughCircles`函数检测圆形区域,并使用`cv2.minMaxLoc`函数在圆形区域中找到亮斑的位置。然后在原始图像上绘制检测到的圆和亮斑。
阅读全文