SimpleBlobDetector
should be able to filter for circularity.
if you need more control over what’s going on, I’d recommend connectedComponentsWithStats or findContours, and then go from there
there’s fitEllipse, which you’d apply to a contour. this example shows minAreaRect and fitEllipse, which are independent of each other OpenCV: Creating Bounding rotated boxes and ellipses for contours