bresenham算法画圆python opencv
时间: 2023-10-08 13:14:45 浏览: 170
以下是使用Bresenham算法在Python OpenCV中绘制圆的示例代码:
```
import cv2
def draw_circle(img, center, radius):
x0, y0 = center
x = 0
y = radius
d = 3 - 2*radius
while x <= y:
img[y0+y, x0+x] = (255, 255, 255)
img[y0-x, x0+y] = (255, 255, 255)
img[y0-y, x0-x] = (255, 255, 255)
img[y0+x, x0-y] = (255, 255, 255)
x += 1
if d < 0:
d += 4*x + 6
else:
d += 4*(x-y) + 10
y -= 1
if __name__ == '__main__':
img = cv2.imread('test.png')
draw_circle(img, (100, 100), 50)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们定义了一个`draw_circle`函数,它接受一张图片、圆心坐标和半径作为参数。然后,我们使用Bresenham算法来绘制圆,并在相应的像素位置上设置白色像素。最后,我们使用OpenCV的`imshow`函数来显示绘制后的图像。
如果你运行这个代码,你将得到一个窗口,其中包含一个白色圆形。你可以根据需要调整圆心坐标和半径来绘制不同大小的圆。
阅读全文