2014-12-25 13 views
7

Używam cv2.putText(), aby narysować ciąg tekstowy na obrazie.OpenCV putText() nowa linia znaków

Kiedy piszę:

cv2.putText(img, "This is \n some text", (50,50), cv2.FONT_HERSHEY_SIMPLEX, 1, 2) 

Tekst sporządzony na obrazie jest:

This is ? some text

Spodziewałem się tekst do druku w nowej linii, co \n jest znakiem ucieczki dla nowej linii, ale zamiast tego rysuje ? na obrazie.

Dlaczego tak się dzieje? czy robię coś źle ?

+2

putText można zrobić litery, cyfry i niektóre symbole jak = *!. niewiele więcej. – berak

Odpowiedz

12

Niestety nie obsługuje poprawnie symboli \n. Zobacz relevant rejected pull request. Trzeba podzielić swój tekst siebie i zrobić kilka putText połączeń, coś jak:

text = "This is \n some text" 
y0, dy = 50, 4 
for i, line in enumerate(text.split('\n')): 
    y = y0 + i*dy 
    cv2.putText(img, line, (50, y), cv2.FONT_HERSHEY_SIMPLEX, 1, 2)