Multiple Object Detection shows single blob in binary image


I am working on pool ball tracking and detection with an IR camera using OpenCV in C++. I am able to segment the ball as blobs in a Binary image. The problem occurs when multiple pool balls are touching each other. The algorithm considers it as a single large blob. I have tried :

  1. Various parameters for erosion and dilation.
  2. Distance transform and watershed algorithm.
  3. Convexity Defects. Can someone please give suggestions for the same?