Pillowを使うと、Pythonで手軽に画像処理を始められます。
この記事では、Pillowを使った画像の読み込み、表示、加工の基本を、サンプルコード付きでわかりやすく解説します。
この記事を読むことで、画像処理のスキルを身につけ、日々の作業や趣味に活かせるでしょう。
Pillowの世界へ飛び込み、アイデアを形にしてみましょう。
この記事では、以下の内容を解説します。
- Pillowを使った画像の読み込み方法
- 画像の表示と基本的な情報取得の手順
- リサイズ、切り抜き、回転などの応用テクニック
- 学習リソースと次の一歩
Pillowで始める画像処理入門
PythonとPillowの魅力
PythonとPillowの組み合わせは、画像処理の世界への扉を開きます。
Pillowは、画像処理に必要な機能を手軽に利用できるライブラリです。
PythonとPillowを使うことで、例えば、写真の編集、画像の加工、データ分析のための画像処理などが簡単に行えます。
画像処理を始めるなら、PythonとPillowは間違いなくおすすめの組み合わせです。
画像処理の基礎を学ぶ意義
画像処理の基礎を学ぶことは、デジタル社会において非常に重要なスキルです。
写真や動画を扱う現代において、画像処理の知識はさまざまな分野で役立ちます。
画像処理の基礎を学ぶことで、例えば、画像の編集スキルが向上したり、医療画像の解析に貢献できたりします。
画像処理の知識は、私達の生活や社会をより豊かにする力となるでしょう。
Pillowを使った基本操作
matplotlibのインストール
py -m pip install matplotlib
Pillowライブラリを利用することで、Pythonで手軽に画像の読み込み、表示、そして基本的な情報を取得できます。
ここでは、その具体的な手順をサンプルコードを交えながら説明します。
画像ファイルの読み込み

画像処理の最初のステップは、Pillowを使って画像ファイルを読み込むことです。
Image.open() メソッドを利用することで、さまざまな形式の画像ファイルを読み込めます。
from PIL import Image
import matplotlib.pyplot as plt
# 画像ファイルを読み込む
image_path = "path/to/your/image.jpg" # 画像ファイルのパスを指定
image = Image.open(image_path)
# 画像を表示する
plt.imshow(image)
plt.axis('off') # 軸を非表示にする
plt.show()
上記サンプルコードでは、sample.jpgという名前の画像ファイルを読み込んでいます。
パスは適宜変更してください。
PillowはJPEG、PNG、GIF、BMP、TIFFなど、多くの画像フォーマットに対応しています。
画像の表示方法

画像を読み込んだら、次は表示です。
show()メソッドを使うことで、画像を簡単に表示できます。
from PIL import Image
# 画像ファイルを読み込む
image_path = "path/to/your/image.jpg" # 画像ファイルのパスを指定
image = Image.open(image_path)
# 画像を表示する
image.show()
show() メソッドは、読み込んだ画像をシステムのデフォルトビューアで表示します。
Google ColaboratoryやJupyter Notebookでは、変数名を入力するだけで画像がインライン表示されます。
画像情報の確認

Pillowでは、読み込んだ画像のさまざまな情報を取得できます。
画像のサイズ(幅と高さ)や形式(色モード)を確認することで、その後の処理に役立てることが可能です。
from PIL import Image
# 画像ファイルを読み込む
image_path = "path/to/your/image.jpg" # 画像ファイルのパスを指定
image = Image.open(image_path)
# 画像の形式を取得
image_format = image.format
print(f"画像の形式: {image_format}")
# 画像のサイズを取得
width, height = image.size
print(f"画像のサイズ: 幅 = {width}, 高さ = {height}")
# 画像の色モードを取得
color_mode = image.mode
print(f"画像の色モード: {color_mode}")
画像の幅と高さはsize属性で取得できます。
また、mode属性で画像の形式(RGBやRGBAなど)を確認できます。
これらの情報を確認することで、画像処理の方針を立てやすくなります。
応用的な画像処理テクニック
Pillowでは、基本的な画像操作に加えて、さらに高度な画像処理も可能です。
ここでは、画像のリサイズ、切り抜き、回転といった、応用的なテクニックについて解説します。
画像のリサイズ
画像のリサイズは、画像のサイズを変更する処理です。
Pillowでは、resize()メソッドを使用して、画像の幅や高さを変更できます。
from PIL import Image
# 画像ファイルを読み込む
image_path = "path/to/your/image.jpg" # 画像ファイルのパスを指定
image = Image.open(image_path)
# 新しいサイズを指定(幅, 高さ)
new_size = (800, 600) # 例: 幅800ピクセル、高さ600ピクセル
# 画像をリサイズ
resized_image = image.resize(new_size)
# リサイズした画像を保存
resized_image.save(image_path) # 新しい画像の保存先
print(f"画像をリサイズしました: 幅 = {new_size[0]}, 高さ = {new_size[1]}")
例えば、画像のサイズを半分にしたり、特定のサイズに拡大したりすることが可能です。
画像の縦横比を維持したままリサイズすることもできます。
項目 | 説明 |
---|---|
メソッド | resize() |
処理内容 | 画像の幅と高さを変更 |
活用例 | サムネイル作成、表示サイズの最適化 |
注意点 | 縦横比を維持するかどうか |
リサイズを行うことで、Webサイトやアプリケーションでの表示速度を向上させたり、ストレージ容量を節約したりできます。
画像の切り抜き
画像の切り抜きは、画像の一部を切り取る処理です。
Pillowでは、crop()メソッドを使用して、切り抜きたい領域を指定します。
from PIL import Image
# 画像ファイルを読み込む
image_path = "path/to/your/image.jpg" # 画像ファイルのパスを指定
image = Image.open(image_path)
# 切り抜きたい領域を指定 (左, 上, 右, 下)
crop_area = (100, 100, 400, 400) # 例: (左, 上, 右, 下)
# 画像を切り抜く
cropped_image = image.crop(crop_area)
# 切り抜いた画像を保存
cropped_image.save(image_path) # 新しい画像の保存先
print("画像を切り抜きました。")
領域は、左上の座標と右下の座標で指定します。
特定のオブジェクトに焦点を当てたり、不要な部分を削除したりするのに役立ちます。
項目 | 説明 |
---|---|
メソッド | crop() |
処理内容 | 画像の一部分を切り取る |
活用例 | 特定オブジェクトの抽出、不要部分の削除 |
注意点 | 切り抜き領域の座標指定 |
切り抜きは、写真の構図を改善したり、SNSのプロフィール画像を作成したりする際にも利用できるでしょう。
画像の回転
画像の回転は、画像を任意の角度で回転させる処理です。
Pillowでは、rotate()メソッドを使用して、画像を回転させます。
from PIL import Image
# 画像ファイルを読み込む
image_path = "path/to/your/image.jpg" # 画像ファイルのパスを指定
image = Image.open(image_path)
# 回転させる角度を指定(度数法)
angle = 45 # 例: 45度回転
# 画像を回転させる
rotated_image = image.rotate(angle, expand=True)
# 回転した画像を保存
rotated_image.save("path/to/your/rotated_image.jpg") # 新しい画像の保存先
print(f"画像を{angle}度回転しました。")
回転角度は度数で指定し、時計回りに回転します。
画像の向きを修正したり、クリエイティブな効果を加えたりする際に使用します。
項目 | 説明 |
---|---|
メソッド | rotate() |
処理内容 | 画像を指定角度で回転 |
活用例 | 画像の向き修正、クリエイティブな効果 |
注意点 | 回転角度の指定、回転方向 |
画像を回転させることで、視覚的なインパクトを強めたり、水平線を調整したりすることが可能です。
これらの応用的な画像処理テクニックを組み合わせることで、Pillowを使った画像処理の可能性はさらに広がります。
画像の編集スキルを向上させて、より魅力的なコンテンツを作成してみてはいかがでしょうか。
おすすめ情報と次の一歩
Pillowを使いこなすことで、日々の画像処理がよりスムーズになるはずです。
次は、さらに深くPillowを理解し、スキルアップに繋がる情報源を紹介します。
Pillow公式ドキュメント
Pillowの機能を網羅的に理解するには、公式ドキュメントが最適です。
関数やメソッドの詳細な解説はもちろん、サンプルコードも豊富に掲載されています。
Pillowのバージョンによる違いも明記されているため、利用環境に合わせて情報を確認できます。
Pillow関連の学習リソース
Web上には、Pillowの使い方を解説する記事やチュートリアル動画が数多く存在します。
「Pillow チュートリアル」や「Python 画像処理」といったキーワードで検索すると、役立つ情報が見つかるはずです。
オンラインコースや勉強会に参加するのも、効率的な学習方法と言えます。
実践的な画像処理プロジェクト
Pillowの理解を深めるには、実際に手を動かして画像処理を行うのが一番です。
例えば、大量の画像ファイルのリサイズ処理や、画像にウォーターマークを追加するスクリプトを作成してみましょう。
個人的なプロジェクトだけでなく、オープンソースプロジェクトに貢献することも、スキルアップに繋がるはずです。
よくある質問(FAQ)
- QPillowをインストールする方法を教えてください。
- A
Pillowは、pip install Pillowコマンドでインストールできます。Anaconda環境の場合は、Anaconda Navigatorから環境を作成し、ターミナルでpip install pillowを実行してください。
- Q画像を読み込んだ後、どのように表示すれば良いですか?
- A
画像を読み込んだ後、img.show()メソッドを使用すると、システムのデフォルトビューアで画像を表示できます。Google ColaboratoryやJupyter Notebookでは、変数名を入力するだけでインライン表示されます。
- Q画像のサイズを変更するにはどうすれば良いですか?
- A
画像のサイズを変更するには、resize()メソッドを使用します。新しい幅と高さを指定して、img.resize((width, height))のように記述します。
- Q画像の一部を切り抜くにはどうすれば良いですか?
- A
画像の一部を切り抜くには、crop()メソッドを使用します。切り抜きたい領域の左上の座標と右下の座標を指定して、img.crop((left, top, right, bottom))のように記述します。
- Q画像を回転させるにはどうすれば良いですか?
- A
画像を回転させるには、rotate()メソッドを使用します。回転させたい角度を度数で指定して、img.rotate(angle)のように記述します。時計回りに回転します。
- Q画像の形式(色モード)を確認するにはどうすれば良いですか?
- A
画像の形式は、mode属性で確認できます。例えば、img.modeと記述すると、RGBやRGBAといった形式が表示されます。
参考
まとめ
Pillowを使うことで、Pythonでさまざまな画像処理を簡単に行えます。
この記事では、Pillowを使った画像の読み込み、表示、加工の基本をサンプルコード付きで解説しました。
- Pillowを使った画像の読み込み方法
- 画像の表示と基本的な情報取得の手順
- リサイズ、切り抜き、回転などの応用テクニック
さあ、Pillowの世界へ飛び込んで、あなた自身のアイデアを形にしてみましょう。
コメント