We use the Hough transform to detect circles. It works well for test data, but will not be robust because of the following:
Requires careful cropping of the input image
Filters circle centers that don't fit within an opinionated grid
Variation in the brightness of the well walls.
This the same general approach used in WormAssay, but his is more sophisticated and definitely more robust. Ideas to steal:
[ ] Use a pre-defined well radius that is adjusted based on plate format
[ ] Use an errorTolerance to allow the function to search a larger range of radii (i.e. here)
[ ] Filter by center collinearity rather than an opinionated grid (i.e. here)
[ ] Switch from scikit-image to OpenCV for the Hough transform
Another idea for filtration is to find more circles than needed, get the distribution, and only keep coordinates that lie within the peaks (number of peaks is the same as number of rows or columns) +/- some error.
We use the Hough transform to detect circles. It works well for test data, but will not be robust because of the following:
This the same general approach used in WormAssay, but his is more sophisticated and definitely more robust. Ideas to steal:
errorTolerance
to allow the function to search a larger range of radii (i.e. here)Another idea for filtration is to find more circles than needed, get the distribution, and only keep coordinates that lie within the peaks (number of peaks is the same as number of rows or columns) +/- some error.