如何检测一个点是否包含在一个边界矩形中 - opecv&蟒蛇

时间:2015-10-11 13:57:51

标签: python opencv bounding-box

我有一组点[(x0,y0),(x1,y1),..]

使用cv2.boundingRect(someContour)函数生成一组边界矩形。 每个边界框是一个具有四个坐标(a,b,c,d)的可迭代对象。 我的问题是:

  1. 这四个数字是什么意思?

  2. 如何检查每个给定点是否包含在边界矩形中?

  3. 我知道opencv for C ++有'contains'方法,但它不存在python。

2 个答案:

答案 0 :(得分:13)

  1. a,b是矩形的左上角坐标,(c,d)是宽度和高度。 OpenCV Contour Features
  2. 判断一个点(x0,y0)在矩形中,只是为了检查a&lt; x0&lt; a + c和b < y0&lt; b + d

答案 1 :(得分:2)

def rectContains(rect,pt):
    logic = rect[0] < pt[0] < rect[0]+rect[2] and rect[1] < pt[1] < rect[1]+rect[3]
    return logic

rect = (a,b,c,d)

rectContains(rect,pt)