Actually, I want five external bounding boxes for the "white" pixels on the following binary image. Desired zones are highlighted with red color.
To get 5th bounding box I'd dilate or blur it. However, dilation will merge zone 3 with zones 1 and 2, so I'll get a bounding box which covers almost entire image. (If I don't dilate or blur it, then cv::findContours + cv::boundingRect will produce a big number of small rectangles.)
In other words, I want only "big enough" bounding boxes.

It's just a sample pattern. Positions of the zones may vary. Is there a way to solve the problem in a general way?