有没有办法在OpenCV中制作一个抗锯齿圆

Joh*_*tan 3 python opencv draw

我正在尝试使用 Open CV 和 Python 在图片中画一个圆圈。

这是我希望我能制作的图片:

在此输入图像描述

这是我写的代码:

import cv2  
import numpy as np  
import imutils

text1 = "10x"  
text2 = "20gr"  

# Load image in OpenCV  
image = cv2.imread('Sasa.jfif')
resized = imutils.resize(image, width=500)
cv2.circle(resized,(350,150),65,(102,51,17),thickness=-1)

# Convert the image to RGB (OpenCV uses BGR)  
cv2_im_rgb = cv2.cvtColor(resized,cv2.COLOR_BGR2RGB)  

# Pass the image to PIL  
pil_im = Image.fromarray(cv2_im_rgb)  

draw = ImageDraw.Draw(pil_im)  
# use a truetype font  
font1 = ImageFont.truetype("arial.ttf", 50)  
font2 = ImageFont.truetype("arial.ttf", 25)  

# Draw the text  
draw.text((310,110), text1, font=font1) 
draw.text((325,170), text2, font=font2) 

# Get back the image to OpenCV  
cv2_im_processed = cv2.cvtColor(np.array(pil_im), cv2.COLOR_RGB2BGR)  

cv2.imshow('Fonts', cv2_im_processed)  
cv2.waitKey(1)  
Run Code Online (Sandbox Code Playgroud)

但这是我的代码生成的:

在此输入图像描述

圆线不精确。我可以做些什么来使线条更精确,或者是否有其他库可以生成带有精确线条的圆?

任何建议将不胜感激!

Run*_*nho 6

您可以使用抗锯齿功能使圆看起来更好,如下所述

cv2.circle(resized,(350,150),65,(102,51,17),thickness=-1,lineType=cv2.LINE_AA)
Run Code Online (Sandbox Code Playgroud)