OpenCV Reference

【OpenCV-Python】getTextSize(文字の大きさを調べる)

OpenCVで描画する文字の大きさを調べるにはgetTextSize()関数を用います。

文字を描画するputText()関数では、文字を描画する位置を文字の左下の位置で指定しますが、文字の位置を上寄せ、下寄せ、右寄せ、左寄せ、左寄せなどを行いたい場合は、描画する文字の領域を調べ、描画位置を補正することで、可能になります。

OpenCV Python getTextSize 文字の大きさを調べる

 

getTextSizeの構文

getTextSize( text, fontFace, fontScale, thickness ) -> size, baseLine

引数

text 描画に用いる文字列
fontFace 描画時のフォント
cv2.FONT_HERSHEY_SIMPLEX
cv2.FONT_HERSHEY_PLAIN
cv2.FONT_HERSHEY_DUPLEX
cv2.FONT_HERSHEY_COMPLEX
cv2.FONT_HERSHEY_TRIPLEX
cv2.FONT_HERSHEY_COMPLEX_SMALL
cv2.FONT_HERSHEY_SCRIPT_SIMPLEX
cv2.FONT_HERSHEY_SCRIPT_COMPLEX
cv2.FONT_ITALIC
fontScale 文字の大きさの倍率
thickness 線幅を整数で指定します。

 

戻り値

size 文字の大きさを(幅, 高さ)のタプルで取得します。
baseLine 文字(g, j, p, q, y)の領域から下側にはみ出す量を取得します。

 

サンプルプログラム

import cv2
import numpy as np

img = np.zeros((200, 600, 3), dtype = np.uint8)

text = "abgpqABC123"    # 大きさを測る文字列
fontFace = cv2.FONT_HERSHEY_SIMPLEX # フォント
fontScale = 2           # 文字のサイズ
thickness = 1           # 文字の太さ

bottom_left = (50, 100)

# 文字の大きさを測る
size, baseLine = cv2.getTextSize(text, fontFace, fontScale, thickness)
print(size, baseLine ) # 出力結果 ->  (431, 43) 18

# putTextで指定した左下の位置
cv2.circle(img, bottom_left, 5, (255, 255, 0), -1)
# getTextSizeで取得した領域
cv2.rectangle(img, bottom_left, (bottom_left[0] + size[0], bottom_left[1] - size[1]), (0, 0, 255), 1)
# baseline(g, j, p, q, yの下側にはみ出す量)
cv2.line(img, (bottom_left[0], bottom_left[1] + baseLine), (bottom_left[0] + size[0], bottom_left[1] + baseLine),
         (0, 255, 255), 1)

# 文字の描画
cv2.putText(img, text, bottom_left, fontFace, fontScale, (255, 255, 255), thickness)

cv2.imshow("Image", img)
cv2.waitKey()

実行結果

OpenCV Python getTextSize 文字の大きさを調べる

 

関連リンク

【OpenCV-Python】putText(文字の描画)
OpenCVで画像に文字を描画するにはputText()関数を用います。 ただし、日本語の描画を行うことはできません。 putTextの構文 putText( img, text, org, fontFace, fontScale, col...

参照ページ

OpenCV: Drawing Functions

コメント

タイトルとURLをコピーしました