gpt4 book ai didi

python - 查找opencv矩形的顶部和底部的y坐标

转载 作者:行者123 更新时间:2023-12-02 17:37:44 25 4
gpt4 key购买 nike

我想将these 2个矩形合并为一个,就像this一样。我可以想到的最简单的方法是获取顶部矩形的顶部y坐标和底部矩形的底部y坐标,并在cv2.rectangle()中使用它们,但是由于for循环,我很难同时获得这两个点。

这是代码:

#Finding contours (always finds those 2 retangles + some noise):
_, conts, hierarchy = cv2.findContours(img_green, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

for cnt in conts:
area = cv2.contourArea(cnt)

#filter all the noise
if area > 20:

x1, y1, w, h = cv2.boundingRect(cnt)
x2 = x1 + w # (x1, y1) = top-left vertex
y2 = y1 + h # (x2, y2) = bottom-right vertex
cv2.rectangle(green_bar_win, (x1, y1), (x2, y2), (255,0,0), 2)
print("x1:", x1, " y1:", y1, " x2:", x2, " y2:", y2)

这是打印结果(它在循环的不同迭代中打印两个矩形的左上和右下矩形点的x,y坐标):
x1: 60  y1: 217  x2: 83  y2: 288
x1: 60 y1: 169 x2: 83 y2: 216
x1: 60 y1: 217 x2: 83 y2: 288
x1: 60 y1: 169 x2: 83 y2: 216...

谢谢。

编辑:我的 solution

最佳答案

除了使用坐标,您还可以通过使用“或”以更简单的方式进行操作。

如果两个矩形均为opencv类型rect,则可以简单地使用,

result = rect1 | rect2;

这将为您提供一个将两者包围的矩形。
同样,您可以执行其他操作,例如
result = rect1 & rect2;

这将为您提供两个矩形的内切面。
Reference.

关于python - 查找opencv矩形的顶部和底部的y坐标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48574664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com