Это эталонное изображение:
Мне нужно нарисовать на нем круги так же, как и эталонное изображение:
Это результирующее изображение:
Вот как выглядит код:
img = cv2.imread("foot.png")
cv2.circle(img,(112,71), 4, (0,0,0), -1)
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(img, '1', (112,71), font, 1, (84, 29, 108), 1, cv2.LINE_AA)
cv2.imwrite("test.png",img)
Как таким же образом поместить число в круг как на эталонном изображении? Пиксели, приведенные в коде, предназначены для первой позиции.
Редактировать: я пробовал это решение на Stackoverflow, и оно дало этот результат Рисование текста внутри круга OpenCV
Редактировать 1: код:
img = cv2.imread("foot.png")
CENTER = (112, 71)
cv2.circle(img, CENTER, 2, (127,0,127), -1)
TEXT_FACE = cv2.FONT_HERSHEY_DUPLEX
TEXT_SCALE = 1
TEXT_THICKNESS =1
TEXT = "0"
text_size, _ = cv2.getTextSize(TEXT, TEXT_FACE, TEXT_SCALE, TEXT_THICKNESS)
text_origin = ( int(CENTER[0] - text_size[0] / 2), int(CENTER[1] + text_size[1] / 2))
cv2.putText(img, TEXT, text_origin, TEXT_FACE, TEXT_SCALE, (127,255,127), TEXT_THICKNESS, cv2.LINE_AA)
cv2.imwrite('centertext_out.png', img)
Выход:
Редактировать:
Это то, чего я добился до сих пор:
Есть ли способ не допустить, чтобы круги во второй строке перекрывали друг друга? Можно ли запретить кружкам покрывать текст?