我要把圆圈的外部区域去掉。在
我只需要使用圆的内部区域,以避免图像处理中的错误,目前我只能找到圆并标记它
我不知道我是不是做对了,使用cv2.circle
请帮帮我
circles = cv2.HoughCircles(cinza, cv2.HOUGH_GRADIENT, 1, 20)
if circles is not None:
maior = 0
circles = np.uint16(np.around(circles))
for i in circles[0, :]:
radius = i[2]
if radius > maior:
maior = radius
for i in circles[0, :]:
center = (i[0], i[1])
radius = i[2]
if radius == maior:
cv2.circle(image, center, 1, (0, 100, 100), 3)
cv2.circle(image, center, radius, (255, 0, 255), 3)
您可以使用OpenCV的mask函数。在这个链接中,您可以看到c++上的mask函数,我在官方页面上找不到Python函数,但是there是Python上OpenCV屏蔽的代码。在
总之,您可以通过OpenCV mask函数来遮罩圆的外部尺寸,以删除圆的外部区域。在
首先使用numpy meshgrid得到一个包含图像索引的x和y矩阵。然后计算指数到圆心的距离,从指数矩阵中减去质心,分别计算x和y。在
然后使用
x
、y
、image
和{然后使用距离矩阵上的boolean indexing来选取圆内的像素,并将其设置为零
^{pr2}$相关问题 更多 >
编程相关推荐