opencvimage-processingedge-detectionhough-transformcanny-operator

Does cv2.HoughCircles() perform a Gaussian blur?


This is an extension to another user’s question asking whether it is necessary to perform a Gaussian blur before using cv2.Canny(). I know from the documentation that cv2.HoughCircles() calls a Canny edge detector (presumably cv2.Canny()). Based on the user’s question, I need to use a Gaussian blur with the default Sobel kernel size. Does cv2.HoughCircles call cv2.Canny() with a default Sobel kernel size? If it does, does cv2.HoughCircles() method implicitly use a Gaussian blur already?

Thanks in advance!


Solution

  • It does not perform Gaussian Blur.

    It is recommended to apply Gaussian Blur before feeding your image to HoughCircles.

    It also helps to smooth image a bit unless it's already soft. For example, GaussianBlur() with 7x7 kernel and 1.5x1.5 sigma or similar blurring may help.

    In the current implementation of OpenCV there's no Gaussian Blur call.