插件窝 干货文章 如何用Python和OpenCV根据矩形坐标绘制九个均匀分布的圆点?

如何用Python和OpenCV根据矩形坐标绘制九个均匀分布的圆点?

圆点 矩形 网格 绘制 863    来源:    2025-03-16

要使用Python和OpenCV在给定的矩形区域内绘制九个均匀分布的圆点,你可以按照以下步骤进行操作:

  1. 导入必要的库:首先导入OpenCV和NumPy库。
  2. 定义矩形区域:确定矩形的左上角和右下角坐标。
  3. 计算圆点的位置:将矩形区域均匀分割成3x3的网格,计算每个网格的中心点作为圆点的位置。
  4. 绘制圆点:使用OpenCV的circle函数在每个中心点绘制圆点。

以下是完整的代码示例:

import cv2
import numpy as np

# 创建一个空白图像
image = np.zeros((500, 500, 3), dtype=np.uint8)

# 定义矩形的左上角和右下角坐标
rect_top_left = (100, 100)
rect_bottom_right = (400, 400)

# 计算矩形的宽度和高度
rect_width = rect_bottom_right[0] - rect_top_left[0]
rect_height = rect_bottom_right[1] - rect_top_left[1]

# 计算每个网格的宽度和高度
grid_width = rect_width // 3
grid_height = rect_height // 3

# 计算每个圆点的中心坐标
circle_centers = []
for i in range(3):
    for j in range(3):
        center_x = rect_top_left[0] + grid_width * (i + 0.5)
        center_y = rect_top_left[1] + grid_height * (j + 0.5)
        circle_centers.append((int(center_x), int(center_y)))

# 绘制圆点
for center in circle_centers:
    cv2.circle(image, center, 10, (0, 255, 0), -1)  # 半径为10,颜色为绿色,填充圆

# 显示图像
cv2.imshow("Image with Circles", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

代码解释:

  1. 创建空白图像:我们创建了一个500x500的空白图像。
  2. 定义矩形区域:矩形的左上角坐标为(100, 100),右下角坐标为(400, 400)
  3. 计算网格大小:将矩形区域均匀分割成3x3的网格,每个网格的宽度和高度分别为grid_widthgrid_height
  4. 计算圆点中心:通过遍历网格,计算每个网格的中心点作为圆点的位置。
  5. 绘制圆点:使用cv2.circle函数在每个中心点绘制半径为10的绿色圆点。
  6. 显示图像:最后显示绘制了圆点的图像。

运行结果:

运行上述代码后,你将看到一个500x500的窗口,其中在矩形区域内均匀分布了九个绿色圆点。

你可以根据需要调整矩形的大小、位置以及圆点的半径和颜色。