2014-12-25 137 views
7

我正在使用cv2.putText()在圖像上繪製文本字符串。OpenCV putText()新行字符

當我寫:

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

在圖像上繪製的文本是:

This is ? some text

我期待在新的行作爲\n要打印的文本是一個轉義字符對於換行符,但它會在圖像上繪製?

爲什麼會發生這種情況?難道我做錯了什麼 ?

+2

putText能做的字母,數字和一些符號像= *!沒有更多。 – berak

回答

12

不幸的是putText沒有正確處理\n符號。請參閱relevant rejected pull request。你需要自己分割你的文字,讓一些putText通話,是這樣的:

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)