目次 opencv2または3を使用する場合、画像上に表示したい 中国語テキストを追加するには、Freetypeライブラリをダウンロードしてコンパイルし、中国語を出力するopencvライブラリにリンクする必要があります。インターネット上の画像に中国語を挿入するチュートリアルのほとんどは、依然として win+vs 構成チュートリアルです。私のようにwin環境とlinux環境を持っている人にとって、コードの同期は確かに少々面倒です。幸いなことに、代わりとなるものがあります。それが以下の例です。枕です。
準備pip installpillow
または
conda installpillow
中国語をサポートする次のフォントライブラリ
ttf
です。 Microsoft Yahei ライブラリをダウンロードしました。ファイル名は msyh.ttf
draw_chinese.py
を作成します。 ipython-notebook スタイルのサンプル コードについては、こちらをご覧ください1. ライブラリをインポートします
import cv2from PIL import Image,ImageFont,ImageDrawfrom matplotlib.pyplot import imshowimport numpy as np
Image
: オブジェクトのインスタンスは画像を表し、次の処理を実行できます。いくつかのサイズ変換とアフィン変換操作ImageFont
: 準備段階でダウンロードしたフォント ライブラリ ファイルをロードするために使用されます
ImageDraw
: 画像オブジェクトに基づいて、次のような画像を作成します。 Image
code> で使用されます。インスタンスに線を描画し、テキストを貼り付けるためのオブジェクトです。 img = Image.new(mode="RGB",size=(400,150),color=(120,20,20)) #或者从numpy对象中创建也行。可以把opencv的图片转为numpy,通过numpy连接两个图像处理库。 #img = Image.fromarray(numpy_object) img.show()
3. フォントライブラリをロードします
path_to_ttf = r'data/msyh.ttf' font = ImageFont.truetype(path_to_ttf, size=25) #size 确定一个汉字的大小
pip install pillow
conda install pillow
下一个支持中文的字体库
搜索关键词:ttf 字体。 下载一个你喜欢的字体风格库,文件的后缀一般为ttf
。我下载了一个微软雅黑库,文件名就是msyh.ttf
首先新建一个python文件:draw_chinese.py
。示例代码ipython-notebook风格请去这里
1.导入库
draw = ImageDraw.Draw( img )
Image
:对象的实例代表一张图片,可以进行一些大小变换和仿射变换操作ImageFont
:用来加载准备阶段中下载的字体库文件ImageDraw
: 基于image对象,创建一个可以在Image
この方法では、Freetype ライブラリを自分でダウンロードしてコンパイルする必要がなく、pillow のインストールも非常に簡単です。書かれたコードは python2 と python3 の両方で使用できます。クロスプラットフォームでも問題ありません。 Curve は、opencv が中国語フォントをネイティブにサポートしていないという問題を解決したと言えます。
Pillow は、opencv の一部の機能を実行できるライブラリです。これまでのところ、一般的に使用されているが、Pillow には存在しない設定を見つけました。 長方形のフレームを描画する場合、長方形のフレームの端の幅を設定することはできません。元の幅を追加または増やすたびに、1 ピクセルの座標位置を減らし、フレームを繰り返して幅を増やす効果を実現する必要があります。 Opencv では、width パラメーターを指定するだけで済みます。以上が枕絵に漢字を入れる例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。