Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to detect if a point is contained within a bounding rect - opecv & python

I have a set of points [(x0,y0), (x1,y1), .. ]

And a set of bounding rectangles produced using the cv2.boundingRect(someContour) function. Where each bounding box is an iterable object with four coordinates (a,b,c,d). My questions are:

  1. what is the meaning of these four numbers?.

  2. how to check if each given point is contained within the bounding rect?

I know that opencv for C++ has the 'contains' method but it doesnt exist for python.

like image 384
Nimrodshn Avatar asked Oct 11 '15 13:10

Nimrodshn


2 Answers

  1. a,b are the top-left coordinate of the rectangle and (c,d) be its width and height. OpenCV Contour Features
  2. to judge a point(x0,y0) is in the rectangle, just to check if a < x0 < a+c and b < y0 < b + d
like image 150
Hooting Avatar answered Sep 28 '22 09:09

Hooting


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)
like image 43
S. Goffin Avatar answered Sep 28 '22 10:09

S. Goffin