python cv2 puttext - ошибка при отображении переменной - PullRequest
0 голосов
/ 25 марта 2020

Я пишу один из моих первых кодов и хочу показать переменную на изображении. Переменная читается из текстового файла. Вот часть моего кода:

font=cv2.FONT_HERSHEY_SIMPLEX
fontScale=2
fontColor=(255,255,255)
lineType=2;

def line11():
    cv2.ellipse(img, (443,350), (35,35), 0, 0, -180, (0,0,255), 4);
    cv2.putText(img, x,(443,320),fontScale, (255,255,255),lineType)

Чтение значения x из texfile:

with open('US1.txt') as f1, open('US2.txt') as f2: 
    for x, y in zip(f1,f2):
        x = x.strip()
        y = y.strip()
        print("{0} {1}".format(x, y))

К сожалению, я получил ошибку:

TypeError                                 
Traceback (most recent call last)
<ipython-input-2-bc1d3b9f83c2> in <module>
    130 
    131         if (float(x) <=0.5):
--> 132             line11();
    133 
    134         elif (0.5< float(x)<=1):

<ipython-input-2-bc1d3b9f83c2> in line11()
     16     cv2.ellipse(img, (443,350), (35,35), 0, 0, -180, (0,0,255), 4);
     17 
---> 18     cv2.putText(img, x, (443,350),fontScale, (255,255,255),lineType)
     19 
     20 def line12():

TypeError: must be real number, not tuple

Я могу ' не могу найти решение. Я перепробовал много вариантов (т. Е. Тип хингинга), теперь я беспомощен. Может кто-нибудь объяснить это мне? Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Вы пропустили аргумент font. Попробуйте это:

font=cv2.FONT_HERSHEY_SIMPLEX
fontScale=2
fontColor=(255,255,255)
lineType=cv2.line_AA
org=(443,320)
text = str(x)

cv2.putText(img, text,org,font,fontScale,fontColor,lineType)

См. здесь

0 голосов
/ 25 марта 2020

Полагаю, ошибка в том, что вы забыли упомянуть шрифт в функции putText . Полученный кортеж был (255 255 255), в то время как он ожидал fontScale .

cv2.putText (изображение, текст, org, шрифт, fontScale, цвет [, толщина [, lineType [, bottomLeftOrigin]]])

Попробуйте: cv2.putText (img, x, (443,320), шрифт, fontScale, fontColor, lineType)

...