【发布时间】:2020-01-28 07:38:10
【问题描述】:
需要用 Python 检测完美圆周的圆,也想为将来的目的创建规则
规则
- 没有任何重叠的圆周。
以下代码尝试检测 Circle,但 Result 正在获取所有在圆周上重叠的 Circle。以下是参考代码。
import cv2 as cv
import numpy as np
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True, help="Path to Image")
args = vars(ap.parse_args())
image = cv.imread(args['image'])
output = image.copy()
img_gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
img_gray = cv.Canny(img_gray,100,200)
img_gray = cv.GaussianBlur(img_gray, (21,21), cv.BORDER_DEFAULT)
circles = cv.HoughCircles(img_gray, cv.HOUGH_GRADIENT, 1, 20, \
param1=50, param2=30, minRadius=0, maxRadius=0)
dectected_circles = np.uint16(np.around(circles)) #round(circles[0:]).astype("int")
for (x, y, r) in dectected_circles[0, : ]:
cv.circle(output, (x, y), r, (0, 255, 0), 3)
cv.circle(output, (x, y), 2, (0, 128, 255), 3)
cv.imwrite('result.jpg',output)
【问题讨论】:
-
嗨,你唯一的问题是右边的圆圈你只想要其中一个?
-
请不要发送垃圾标签,这与 tensorflow 无关
-
@H4kor,是的,我想检测不重叠的圆圈