检测圆的轮廓是否可能超出图像中心

时间:2018-11-29 10:44:00

标签: python opencv

我尝试查找圆和部分圆的轮廓,并检测到中心不在图像中的圆的问题

gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
gray = cv.blur(gray, (3,3))
gray = cv.Canny(gray, threshold1=75, threshold2=100)

Result:

此后,我使用HoughCircle函数

circles = cv.HoughCircles(gray, cv.HOUGH_GRADIENT, 1, rows / 8,
                      param1=100, param2=30,
                      minRadius=50, maxRadius=700)

但是我要查找的轮廓不在圆阵列中,因为其中心不在图像内。

我如何才能检测到这部分圆圈?像这样增加图像尺寸或面积吗?

UPD。我在图像上添加了边框:

  top = int(0.25 * src.shape[0])  # shape[0] = rows
  bottom = top
  left = int(0.25 * src.shape[1])  # shape[1] = cols
  right = left
  src = cv.copyMakeBorder(src, top, bottom, left, right, 
  cv.BORDER_CONSTANT,  None, [0,0,0])

但是此轮廓未满后: enter image description here

UPD.2带有圆圈的图像: enter image description here

0 个答案:

没有答案