I have an image which looks like this:

I have a task in which I should circle all the bottles around their opening. I created a simple algorithm and started working it. My algorithm follows:
- Threshold the original image
- Do some morphological opening in it
- Fill the empty holes
- Separate the portion of the image using region props such that only the area equivalent to the mouth of the bottles is selected.
- Find the centroid for each and draw circle around each bottle.
I did according to the algorithm above and but I have some portion of the image around which I draw a circle. This is because I have selected the area since the area of the mouth of bottle and the remained noise is almost same. And so I yielded a figure like this.
The processing applied on the image look like this:

And my final image after plotting the circle over the original image is like this:

I think I can deal with the extra circle, that is, because of some white portion of the image remained as shown in the figure 2 below. This can be filtered out using regionproping for eccentricity. Is that a good idea or there are some other approaches to this? How would I deal with other bottles behind the glass and select them?