Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで画像を操作しますか?


最も人気があり、画像処理用のPythonのデフォルトライブラリと見なされているものの1つは、Pillowです。 Pillowは、Python Image LibraryまたはPILの更新バージョンであり、さまざまなシンプルで高度な画像操作機能をサポートしています。これは、sciPyやMatplotlibなどの他のPythonライブラリでの単純な画像サポートの基礎でもあります。

枕の取り付け

始める前に、Pythonと枕が必要です。 Linuxの場合、Fedora、Debian / Ubuntu、ArchLinuxなどのLinuxの主要なフレーバーには、以前はPILが含まれていたパッケージにPillowが含まれているため、枕はおそらくすでに存在します。

インストールする最も簡単な方法は、pipを使用することです:

pip install pillow

画像を読み込んで表示する方法

まず、PythonPillowライブラリを使用する際のいくつかの重要な機能を示すテストイメージが必要です。

サンプル画像としてstatue_of_unityの写真を使用しました。画像をダウンロードして、現在の作業ディレクトリに保存します。

#Load and show an image with Pillow
from PIL import Image

#Load the image
img = Image.open('statue_of_unity.jpg')

#Get basic details about the image
print(img.format)
print(img.mode)
print(img.size)

#show the image
img.show()

結果

JPEG
RGB
(400, 260)

Pythonで画像を操作しますか?

画像の上には、Imageクラスのopen()関数を使用して直接読み込まれます。これにより、画像のピクセルデータと画像の詳細を含む画像オブジェクトが返されます。

画像のformatプロパティは画像形式(例:png、jpeg)を報告し、モードはピクセルチャネル形式(例:CMYKまたはRGB)を報告し、サイズは画像のサイズをピクセル単位で報告します(例:400 * 260)

show()関数は、オペレーティングシステムのデフォルトアプリケーションを使用して画像を表示します。

画像をグレースケールに変換

画像をグレースケールに変換し、表示してから保存するのは非常に簡単です。次の手順を実行するだけです。

#Import required library
from PIL import Image
#Read an image & convert it to gray-scale
image = Image.open('statue_of_unity.jpg').convert('L')
#Display image
image.show()
#Save image
image.save('statue_of_unity_gs.jpg')

結果

Pythonで画像を操作しますか?

上記のプログラムを実行すると、現在の作業ディレクトリにファイル「statue_of_unity_gs.jpg」が作成されます。

別の画像タイプに変換

あるタイプ(jpeg)の画像を別のタイプ(たとえばpng)に変換することも非常に簡単です。

from PIL import Image

image = Image.open('statue_of_unity.jpg')
image.save('statue_of_unity.png')


新しい画像ファイルが作成され、デフォルトのディレクトリに保存されます。

画像のサイズを変更する

現在の画像ファイルのサイズ(寸法)は400*260pxです。サイズを変更して、サイズを440 * 600pxにする場合は、次の方法で実行できます。

PILインポート画像から


image = Image.open('statue_of_unity.jpg')
newImage = image.resize((440, 600))
newImage.save('statue_of_unity_440&600.jpg')


サイズ440*600pxの新しいファイル「statue_of_unit_440*600.jpg」が作成され、現在の作業ディレクトリに保存されます。


Pythonで画像を操作しますか?



ご覧のとおり、これにより、元の画像がトリミングされるのではなく、希望のサイズに拡大されます。これは望ましくない場合があります。

既存の画像をトリミングしたい場合は、

を使用してトリミングできます。
image.crop(box=None)

画像を回転させる

以下のプログラムは、画像を読み込み、45度回転させ、外部ビューアを使用して表示します。


from PIL import Image

image = Image.open('statue_of_unity.jpg')
image.rotate(45).show()


Pythonで画像を操作しますか?


サムネイルを作成

以下のプログラムは、現在の作業ディレクトリにあるすべてのjpeg画像の128*128のサムネイルを作成します。

from PIL import Image
import glob, os

size = 128, 128

for infile in glob.glob("*.jpg"):
file, ext = os.path.splitext(infile)
image = Image.open(infile)
image.thumbnail(size, Image.ANTIALIAS)
image.save(file + ".thumbnail", "JPEG")


結果

Pythonで画像を操作しますか?

「statue_of_unity.jpg」画像を含む、現在のディレクトリ(c:\ python \ python361)内のすべてのjpegファイルのサムネイルを返します。


  1. Pythonのサイズ属性に基づいて画像をフィルタリングしますか?

    Pythonは、Pillow、Python Imagingライブラリ、scikit-image、OpenCVなどの画像処理用の複数のライブラリを提供しています。 ここでは、画像処理に複数の標準手順を提供し、jpeg、png、gif、tiff、bmpなどのさまざまな画像ファイル形式をサポートするPillowライブラリを使用します。 PillowライブラリはPythonImagingLibrary(PIL)の上に構築されており、親ライブラリ(PIL)よりも多くの機能を提供します。 インストール pipを使用して枕を取り付けることができるので、コマンドターミナルに次のように入力するだけです-

  2. Pythonを使用して画像を読む?

    OpenCVを使用した画像処理 OpenCV(オープンソースコンピュータービジョン)は、基本的に機械学習とコンピュータービジョンのために開発されたオープンソースプログラミングライブラリです。コンピュータビジョンアプリケーションで動作し、商用製品での機械学習の使用を高速化するための共通のインフラストラクチャを提供します。 コンピュータービジョンと機械学習の両方に最適化された2.5千を超えるアルゴリズムは、古典的で最先端のアルゴリズムです。非常に多くのアルゴリズムを使用して、顔の検出と認識、オブジェクトの識別、ビデオ内の人間の行動の分類、カメラの動きの追跡、画像の結合によるシーン全体の高解像度