How to use opencv for sub-pixel edge detection

The object I want to detect is a circular hole. I use the Canny function and the HoughCircles function to find its edge contour, but this is a pixel-level contour. Is there any way to get the sub-pixel level contour?

crosspost or maybe a fellow student asked this too?

https://stackoverflow.com/staging-ground/79293027

(staging ground)

Yes, I first raised this question on this forum, but no one answered me :disappointed: :disappointed: :disappointed: