2014-12-25 5 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)