在图像上绘制真正的实心圆
Drawing true filled circle on an image
我有一个图像,我定义如下:
img = np.zeros(474,474)
我想在此图像上以不同的坐标为中心和固定半径绘制真正的实心圆而不是多边形近似圆。例如,我想绘制两个中心为 (100,200)
和 (150,372)
且半径为 2
像素的圆。我期望的是,在绘制圆圈之后,原始图像 img
的条目应该更改为所有存在圆圈的条目。
我尝试了 opencv cv.circle
module 以及 skimage.draw.circle
模块,但它们生成了一些圆的多项式近似值。
我也在 matplotlib
中尝试了以下内容,但我似乎不明白如何在我的图像 img
上绘制它。
任何帮助将不胜感激。
from matplotlib.patches import Circle
img=np.zeros(474,474)
fig = plt.figure()
ax = fig.add_subplot(111)
centers = [(100,200),(150,372)]
for i in range(len(centers)):
Circle((centers[i][0],centers[i][1]), radius= 2)
在OpenCV画圆的时候,有几个参数可以选择,其中一个是用来定义圆边界的类型,你有4种类型:
- 已满
- 4连线
- 8连线
- 抗锯齿线
下图可以看到不同的效果(顺序相同)
示例代码(C++)
circle(src,cv::Point(300,300), 10, Scalar(0,0,255), 1, FILLED);
在图片中画圈。
import cv2
import numpy as np
img = np.zeros([474, 474])
cv2.circle(img, (100,100), 5, 255, -1)
cv2.circle(img, (200,200), 30, 255, -1)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
我有一个图像,我定义如下:
img = np.zeros(474,474)
我想在此图像上以不同的坐标为中心和固定半径绘制真正的实心圆而不是多边形近似圆。例如,我想绘制两个中心为 (100,200)
和 (150,372)
且半径为 2
像素的圆。我期望的是,在绘制圆圈之后,原始图像 img
的条目应该更改为所有存在圆圈的条目。
我尝试了 opencv cv.circle
module 以及 skimage.draw.circle
模块,但它们生成了一些圆的多项式近似值。
我也在 matplotlib
中尝试了以下内容,但我似乎不明白如何在我的图像 img
上绘制它。
任何帮助将不胜感激。
from matplotlib.patches import Circle
img=np.zeros(474,474)
fig = plt.figure()
ax = fig.add_subplot(111)
centers = [(100,200),(150,372)]
for i in range(len(centers)):
Circle((centers[i][0],centers[i][1]), radius= 2)
在OpenCV画圆的时候,有几个参数可以选择,其中一个是用来定义圆边界的类型,你有4种类型:
- 已满
- 4连线
- 8连线
- 抗锯齿线
下图可以看到不同的效果(顺序相同)
示例代码(C++)
circle(src,cv::Point(300,300), 10, Scalar(0,0,255), 1, FILLED);
在图片中画圈。
import cv2
import numpy as np
img = np.zeros([474, 474])
cv2.circle(img, (100,100), 5, 255, -1)
cv2.circle(img, (200,200), 30, 255, -1)
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()