Python : putText 文字の書き込み
Opencvを使った、画像への文字の書き込みについてです。
カメラを使った処理を使うときは、カメラに数字を書いたり、
文字を書いたりと、割と活躍する機能です。
OpenCVを使うのはモジュールは
import cv2
今回は、numpyで作った画像に書き込むため、こちらもインポートします
import numpy as np
文字を書き込むようのブランク画像を作ります。
※ブランク画像の説明はこちら
img_blank = np.full((250, 600, 3), (255,255,255), dtype=np.uint8)
書き込むフォントを指定します。
fontType = cv2.FONT_HERSHEY_COMPLEX
文字を書き込みます。
#青、サイズ1、太さ5の文字
cv2.putText(img_blank,' Blue',(0,80), fontType, 1, (255, 0, 0), 5)
#緑、サイズ1、太さ3の文字
cv2.putText(img_blank,' Green',(0,160), fontType, 1, (0, 255, 0),3)
#赤、サイズ1、太さ1の文字
cv2.putText(img_blank,' Red',(0,240), fontType, 1, (0, 0, 255), 1)
#青、サイズ3、太さ1の文字
cv2.putText(img_blank,' Blue',(100,80), fontType, 3, (255, 0, 0), 1)
#緑、サイズ3、太さ3の文字
cv2.putText(img_blank,' Green',(100,160), fontType, 3, (0, 255, 0),3)
#赤、サイズ3、太さ5の文字
cv2.putText(img_blank,' Red',(100,240), fontType, 3, (0, 0, 255), 5)
書き方としては、
cv2.putText(
書き込む画像の指定,
書き込む内容 ,
書き込む位置(x,y),
フォントのタイプ,
文字のサイズ,
色,
文字の太さ)
こんな感じにできます↓
※フォントは知っている限りでは下記があります。
FONT_HERSHEY_COMPLEX
FONT_HERSHEY_COMPLEX_SMALL
FONT_HERSHEY_DUPLEX
FONT_HERSHEY_PLAIN
FONT_HERSHEY_SCRIPT_COMPLEX
FONT_HERSHEY_SCRIPT_SIMPLEX
FONT_HERSHEY_SIMPLEX
FONT_HERSHEY_TRIPLEX
FONT_ITALIC
プログラムは下記です。
import numpy as np import cv2 fontType = cv2.FONT_HERSHEY_COMPLEX #blank画像を作成 img_blank = np.full((250, 600, 3), (255,255,255), dtype=np.uint8) cv2.putText(img_blank,' Blue',(0,80), fontType, 1, (255, 0, 0), 5) cv2.putText(img_blank,' Green',(0,160), fontType, 1, (0, 255, 0),3) cv2.putText(img_blank,' Red',(0,240), fontType, 1, (0, 0, 255), 1) cv2.putText(img_blank,' Blue',(100,80), fontType, 3, (255, 0, 0), 1) cv2.putText(img_blank,' Green',(100,160), fontType, 3, (0, 255, 0),3) cv2.putText(img_blank,' Red',(100,240), fontType, 3, (0, 0, 255), 5) cv2.imshow("img_red",img_blank) cv2.imwrite('putext.jpg',img_blank) #キー入力を待つ cv2.waitKey(0) #全ての開いたウインドウ閉じる cv2.destroyAllWindows()
今までにpythonについて書いた記事はここにリンク を貼ってあります。
興味があればぜひご覧ください。