How does cv2.boundingRect() function of OpenCV work?

vashish doolooa picture vashish doolooa · Feb 25, 2017 · Viewed 33.7k times · Source

I need the explanation on boundingRect of OpenCV. I have implemented it, it works great. Is there any reference where this function is fully explained please?

Answer

Jeru Luke picture Jeru Luke · Feb 28, 2017

The cv2.boundingRect() function of OpenCV is used to draw an approximate rectangle around the binary image. This function is used mainly to highlight the region of interest after obtaining contours from an image.

As per the documentation there are two types of bounding rectangles:

  1. Straight Bounding Rectangle

Here a simple rectangle is drawn around the contour (ROI). As you can see in the documentation, a green rectangle is drawn around the ROI. Corresponding rectangle coordinates are obtained such that a rectangle completely encloses the contour.

  1. Rotated Rectangle
  • In this case cv2.minAreaRect() function is used to highlight the minimum rectangular area enclosing a contour.
  • cv2.boxPoints() obtains the 4 corner points of the obtained rectangle.
  • np.int0() is done to convert the corrdinates from float to integer format.
  • These points are then used to draw the rectangle. This is depicted by the red rectangle in the documentation.