Python OpenCV 霍夫圆变换检测图像中非正圆形轮廓
如何检测在图像中因拍摄角度原因不呈现正圆,而实际上是正圆的轮廓?使用霍夫圆变换可以识别图像中的圆形轮廓,即使它们由于拍摄角度而看起来不是完美的圆形。以下是一个使用 Python 和 OpenCV 库实现的示例代码:\n\npython\nimport cv2\nimport numpy as np\n\n# 读取图像\nimage = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)\n\n# 霍夫圆变换\ncircles = cv2.HoughCircles(image, cv2.HOUGH_GRADIENT, dp=1, minDist=20, param1=50, param2=30, minRadius=10, maxRadius=50)\n\n# 检测到的圆\nif circles is not None:\n circles = np.uint16(np.around(circles))\n for circle in circles[0, :]:\n # 绘制圆\n cv2.circle(image, (circle[0], circle[1]), circle[2], (0, 255, 0), 2)\n # 绘制圆心\n cv2.circle(image, (circle[0], circle[1]), 2, (0, 0, 255), 3)\n\n# 显示图像\ncv2.imshow('Detected Circles', image)\ncv2.waitKey(0)\ncv2.destroyAllWindows()\n\n\n请确保安装了 OpenCV 库,并将图像路径替换为自己的图像路径。在代码中,我们首先将图像转换为灰度图像,然后使用 cv2.HoughCircles() 函数来执行霍夫圆变换。函数的参数可以根据具体图像进行调整。然后,我们通过绘制圆和圆心来显示检测到的圆形轮廓。最后,使用 cv2.imshow() 函数显示结果图像。
原文地址: https://www.cveoy.top/t/topic/pRa5 著作权归作者所有。请勿转载和采集!