Python x 画像で日本語表示

自分用チートシート (いろんな記事の寄せ集め)

個人的に Jupyter Notebook で画像を表示したい、というユースケースだとどのみち plt.imshow() を使うので、テキストの描画も pyplot でやったほうが楽だと思ってる。PIL のインストールいらないし。

matplotlib

TL;DR: plt.rcParams["font.family"] = "<YOUR_JP_FONT_NAME>" で設定する

import matplotlib

### get list of fonts
fonts = set([f.name for f in matplotlib.font_manager.fontManager.ttflist])

### check if each font can draw JP
plt.figure(figsize=(10,len(fonts)/4))
for i, font in enumerate(fonts):
    plt.text(0, i, f"日本語:{font}", fontname=font)
    
# remove axes
plt.ylim(0, len(fonts))
plt.axis("off")
    
plt.show()

### set font
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'Rounded Mplus 1c' # 好きなフォントに変える

下記より引用

cv2/OpenCV

tip: MacOS だとフォントは ~/Library/Fonts 以下にある