学習記録02:PythonのPILパッケージで簡単に画像処理する方法

PythonのPILパッケージで画像を簡単に処理する方法


序文

ここで画像を処理するために cv2 画像処理パッケージを使用することはお勧めできません。中国語のパスでは画像にアクセスできず、読み取り値が NONE で、非常に面倒な場合があるためです。そこで、今日は PIL の使用方法を記録します。パッケージ 画像の簡単な加工。


ヒント: 以下はこの記事の本文であり、次のケースは参考用です。

1.PILとは何ですか?

Pillow ライブラリは、Python 用のサードパーティ ライブラリです。
Python2 では、PIL (Python Imaging Library) が非常に便利な画像処理ライブラリですが、PIL は Python3 をサポートしていないため、誰か (Alex Clark と寄稿者) が Python3 で使用できる Pillow を提供しました。

2. ステップを使用する

1. ライブラリをインストールする

Python3 では Pillow が提供されていますが、インストール時に PIL を直接インストールします。

pip install pillow

2.ライブラリのインポート

コードは次のとおりです(例)。

from PIL import Image

3. データの読み取り

コードは次のとおりです(例)。

	img = Image.open("E:/数据集/0426b97_45d.jpg")	#这里都是绝对地址的写法,也可以写成E:\\数据集\\guofeng1\\0426b97_45d.jpg
	img.show()												#展示图片

4. 画像サイズを読み取る

ここで読み取られる絵には形はなく、大きさだけがあり、次のように読み取れます。

a = img.size		#输出为(1224, 1024)

他の変数に代入することもできます。

a = img.size		#a被赋值(1224, 1024)
a = img.size[0]		#a被赋值1224
a = img.size[1]		#a被赋值1024

チャンネル数はここでは表示できないことに注意してください。表示したい場合は、次のコードで表示できます。

    print(len(img.split()))		#这里将输出3,split将图像颜色通道分成单独的波段,统计其个数就可以得到通道数

5. 画像のスケーリング

Simply(size, resample=BICUBIC, box=None,ducing_gap=None): 画像のサイズを変更し、サイズ変更された画像を返します。パラメータは 4 つあります。
size、画像のスケーリングされたサイズ、長さ 2 のタプル (幅、高さ) が渡されます。
resample、 resample は、オプションのリサンプル フィルターです。Image.NEAREST、Image.BOX、Image.BILINEAR、Image.HAMMING、Image.BICUBIC、Image.LANCZOS を渡すことができます。デフォルトのフィルタは Image.BICUBIC です。画像のモードが「1」または「P」の場合は、常に Image.NEAREST に設定します。
ボックス、画像を拡大縮小する領域。長さ 4 のタプル (x 1 , y 1 , x 2 , y 2 ) を渡します。この領域は元の画像の (0, 0, width, height) の範囲内にある必要があります。範囲を超える場合は、値が渡されない場合、デフォルトでは、元の画像全体が拡大縮小されます。(x 1 , y 1 ) はクリッピング領域の左上隅の座標に相当し、(x 2 , y 2 ) はクリッピング領域の右下隅の座標に相当します。
ducing_gap、ギャップを減らします。画像のズーム効果を最適化するには、浮動小数点数を渡します。デフォルトでは、最適化は実行されません。値が 3.0 より大きい場合、最適化効果は基本的に公平なリサンプリングです。

img_resize = img.resize((500, 400), resample=Image.LANCZOS, box=(100, 100, 1200, 800), reducing_gap=5.0)

6. 画像を保存する

img.save('d:/dog.jpg')

おすすめ

転載: blog.csdn.net/qq_43180908/article/details/116201888