opencvのputtext
関数では(手間をかけないと)できないらしいのとフォントの選択肢が少ないので、付け焼き刃ですが一時的にmatplotlibのfontpropertyから日本語のフォントを指定してプロットしました。
コード
from matplotlib.font_manager import FontProperties fp = FontProperties(fname=r'/Library/Fonts/Osaka.ttf', size=14) def PutText(N=1600, rseed=42, moji1='ああ', moji2='ああ', labelnum=10): fig, ax = plt.subplots(figsize=(4, 4)) ax.axis('off') ax.text(0.5, 0.7, moji1, va='center', ha='center', size=35, fontproperties=fp) ax.text(0.5, 0.2, moji2, va='center', ha='center', size=35, fontproperties=fp) fig.savefig('temp/temp.png') plt.close(fig) data = cv2.imread('temp/temp.png') return data plt.imshow(PutText()) moji.shape
出力
フォント一覧の取得
フォントを簡単に切り替えつつ文字をプロットしたいので
import matplotlib
matplotlib.font_manager.findSystemFonts()
としてフォント一覧をリストで取得。
['/usr/X11/lib/X11/fonts/OTF/SyrCOMMalankara.otf', '/Library/Fonts/DIN Condensed Bold.ttf', '/usr/X11/lib/X11/fonts/OTF/SyrCOMBatnan.otf', '/Library/Fonts/Tahoma Bold.ttf', '/Library/Fonts/Andale Mono.ttf', '/usr/X11/lib/X11/fonts/OTF/SyrCOMTalada.otf', '/Library/Fonts/Impact.ttf', '/Library/Fonts/Hoefler Text Ornaments.ttf', '/Library/Fonts/STIXGeneralBolIta.otf', '/Library/Fonts/STIXSizFourSymBol.otf', '/Library/Fonts/Osaka.ttf', '/Library/Fonts/Trebuchet MS.ttf', '/Library/Fonts/儷黑 Pro.ttf', '/Library/Fonts/Yu Gothic Bold.otf', '/System/Library/Fonts/Apple Braille Pinpoint 6 Dot.ttf', '/Library/Fonts/Arial Bold Italic.ttf', '/usr/X11/lib/X11/fonts/OTF/SyrCOMMardin.otf', '/Library/Fonts/Bradley Hand Bold.ttf', '/Library/Fonts/Microsoft Sans Serif.ttf', '/Library/Fonts/Luminari.ttf', '/Library/Fonts/Verdana Bold Italic.ttf', '/Library/Fonts/STIXNonUniBolIta.otf', '/Library/Fonts/Trebuchet MS Bold Italic.ttf', '/System/Library/Fonts/Apple Braille Outline 6 Dot.ttf', '/Library/Fonts/WawaTC-Regular.otf', ...]