在 python 中计算矩形的质心

Compute the centroid of a rectangle in python

我想计算矩形的质心,矩形的坐标如下:

co_ord = (601, 1006,604, 1009)  ## (xmin,ymin,xmax,ymax)

谁能指出一个简单的方法。 谢谢

具有对角 (x1, y1)(x2, y2) 的矩形的质心位于该矩形的中心 ((x1+x2)/2, (y1+y2)/2)

首先,我假设您所说的质心是指中心。接下来,我假设坐标元组的格式为:(x, y, width, height)。在那种情况下,它会这样做:

coord = (601, 1006, 604, 1009)
centerCoord = (coord[0]+(coord[2]/2), coord[1]+(coord[3]/2))

其中 centerCoord 是格式 (x, y) 中的中心坐标。

如果你有正确的矩形坐标,你可以很容易地用公式计算质心点坐标:

如果你有矩形的2个相对点,你可以使用这个:

  • A点:X1; Y1
  • B点:X2; Y2

计算的质心点:

  • X 坐标:(x1+x2)/2
  • Y坐标:(y1+y2)/2

只是一个建议: 你可以在你的程序中写一个检查部分。您应该检查程序获得的参数。基本 运行 不需要,但如果程序检查矩形是否为真实矩形会更好。

我认为这应该会让您眼前一亮。我将使用 openCV 库使示例更易于理解。

要找到一个中心,您需要坐标:xy

# Draw a rectangle on the image. pt1 = left upper corner, pt2 = right bottom corner
cv2.rectangle(img=your_image, pt1=(px1_width, px2_height), pt2=(px3_width, px4_height), color=(0, 255, 0), thickness=3)
# Calculate the center point of rectangle
x, y = (px1_width + px3_width) // 2, (px2_height + px4_height) // 2
# Draw a circle in the center of rectangle
cv2.circle(img=your_image, center=(x, y), radius=3, color=(0, 255, 0), thickness=3)