I am using Image Processing techniques to extract certain features (circular, not completely circular by the shape) in an image (these features cannot be extracted with the in-built image processing functions). In the approach, I have applied certain conditions such as brightness threshold, gaussian blur and few other conditions to obtain the centres of the circular features in the image (and plotted the same using markers) so that I can later on detect the boundaries of the same.
Whilst trying to find the centres for the features, I have assumed that there is not change in pixel intensity at the centre of the each of the circle (which is true in my case) and therefore found out the gradient of intensity (if plotted with the quiver plot are essentially vectors) across the image and few other conditions to find out the centres. To reduce the number of false positives, I have increased the number of conditions, one of which is that angle between the vectors in the neighbourhood of the vectors must be ~180deg (i.e., if we consider a vector at a position (i,j), the neighbouring vectors at a distance of say 4 pixels to the left (i-4,j) and right (i+4,j) respectively need to have and angular diff. of ~180deg between them.
To apply this condition, I need to find out the angle between the vectors using the tan function rather than the cos function as cos function gives a 2 quadrant answer which is not useful for my question.