A computer-implemented method for detecting circles in digital images, the method comprising (a) computationally detecting edge pixels in an image and storing coordinate information of the detected edge pixels in a plurality of edge buffers based on edge directions associated with the edge pixels, each edge direction corresponding to a direction of a line locally perpendicular to an edge to which the associated edge pixel belongs; (b) eliminating lines of the image for which, in respect of each said line of the image, the cumulative number of edge pixels within respective edge-pixel lines, said edge-pixel lines comprising edge pixels having distances from said line of the image within a specified range r min to r max in the associated edge direction, falls below a specific threshold for a specified positive number of edge directions, each non-eliminated line constituting a selected line of the image; and (c) computationally identifying, successively in each of at least one selected line of the image, centers of circles having radii within the specified range r min to r max by: (i) identifying, for each edge direction, edge-pixel lines comprising edge pixels having distances from the selected line within the specified range r min to r max in the associated edge direction, (ii) parsing the identified edge-pixel lines and, based at least in part on the edge direction and the coordinate information of the detected edge pixels, accumulating votes from the edge pixels for pixels on the selected line, and (iii) identifying the centers in the selected line based at least in part on the accumulated votes. (a) computationally detecting edge pixels in an image and storing coordinate information of the detected edge pixels in a plurality of edge buffers based on edge directions associated with the edge pixels, each edge direction corresponding to a direction of a line locally perpendicular to an edge to which the associated edge pixel belongs; (b) eliminating lines of the image for which, in respect of each said line of the image, the cumulative number of edge pixels within respective edge-pixel lines, said edge-pixel lines comprising edge pixels having distances from said line of the image within a specified range r min to r max in the associated edge direction, falls below a specific threshold for a specified positive number of edge directions, each non-eliminated line constituting a selected line of the image; and (c) computationally identifying, successively in each of at least one selected line of the image, centers of circles having radii within the specified range r min to r max by: (i) identifying, for each edge direction, edge-pixel lines comprising edge pixels having distances from the selected line within the specified range r min to r max in the associated edge direction, (ii) parsing the identified edge-pixel lines and, based at least in part on the edge direction and the coordinate information of the detected edge pixels, accumulating votes from the edge pixels for pixels on the selected line, and (iii) identifying the centers in the selected line based at least in part on the accumulated votes. (i) identifying, for each edge direction, edge-pixel lines comprising edge pixels having distances from the selected line within the specified range r min to r max in the associated edge direction, (ii) parsing the identified edge-pixel lines and, based at least in part on the edge direction and the coordinate information of the detected edge pixels, accumulating votes from the edge pixels for pixels on the selected line, and (iii) identifying the centers in the selected line based at least in part on the accumulated votes.