android opencv 得到光斑图像的中心
时间: 2023-07-24 13:44:31 浏览: 98
基于Android的OpenCV图像sobel操作的实现
要得到光斑图像的中心,可以使用OpenCV中的函数minMaxLoc()。首先,你需要将光斑图像转换为灰度图像,并使用阈值函数将其二值化。然后,你可以使用函数findContours()找到光斑的轮廓,并使用函数moments()计算轮廓的矩。最后,使用函数minMaxLoc()找到矩中心的坐标即可。
以下是一个例子代码:
```python
import cv2
# 读入图像
img = cv2.imread('spot.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 二值化
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)
# 找到轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
# 计算矩
M = cv2.moments(contours[0])
# 计算中心坐标
cx = int(M['m10'] / M['m00'])
cy = int(M['m01'] / M['m00'])
# 显示结果
cv2.circle(img, (cx, cy), 5, (0, 0, 255), -1)
cv2.imshow('result', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意:此代码假定只有一个光斑。如果有多个光斑,则需要在找到轮廓时循环处理每个轮廓,并计算每个轮廓的中心坐标。
阅读全文