Converting blobs to circles
Here is the procedure to follow:


Threshold your image
Obtain connected components - each distinct blob in the image gives you a component.
For each component, find the boundary pixels. Each boundary is represented as a set of points.
Fit one circle per each boundary point set. You could use a simple least squares fitting.


This should give you pretty good circles. You could do this in many languages, using the standard image processing libraries.