如何用Python的OpenCV获取二值图像轮廓及中心点坐标的代码吗?
时间: 2024-04-16 21:28:54 浏览: 278
您可以使用以下代码来使用Python的OpenCV获取二值图像的轮廓及中心点坐标:
```python
import cv2
# 读取二值图像
image = cv2.imread('binary_image.png', cv2.IMREAD_GRAYSCALE)
# 使用阈值处理将图像转换为二值图像
_, binary = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY)
# 查找轮廓
contours, _ = cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# 获取轮廓的中心点坐标
center_points = []
for contour in contours:
M = cv2.moments(contour)
if M["m00"] != 0:
cX = int(M["m10"] / M["m00"])
cY = int(M["m01"] / M["m00"])
center_points.append((cX, cY))
# 绘制轮廓及中心点
cv2.drawContours(image, contours, -1, (0, 255, 0), 2)
for (cX, cY) in center_points:
cv2.circle(image, (cX, cY), 5, (0, 0, 255), -1)
# 显示结果
cv2.imshow("Contours", image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请确保将`'binary_image.png'`替换为您的二值图像文件的路径。这段代码将读取二值图像,找到轮廓,并计算每个轮廓的中心点坐标,然后绘制轮廓及中心点。
阅读全文