画像処理は、現代のさまざまな分野で活用されています。
Pythonを使って画像処理を行うことで、自動化されたワークフローを構築することが可能です。
この記事では、Pythonの人気ライブラリであるOpenCVとPillowを用いた画像処理の基本から実用的な応用までを解説します。
- 未経験者向けプログラミングスクール
- 現役エンジニアがしっかりサポート
- 卒業後も安心の転職・副業サポート
Pythonでの画像処理の基礎知識
Pythonには、さまざまな画像処理ライブラリがあります。
OpenCVやPillowがその代表で、これらを活用することで高度な画像処理が簡単に実現可能です。
画像フォーマットやデータの扱い方についても基礎的な知識を持っておくことが重要です。
画像処理の基本とは
画像処理は、コンピュータを用いて画像を解析、変換、編集する技術です。
例えば、画像の切り抜きやフィルターの適用、色の調整などが挙げられます。
from PIL import Image
img = Image.open('image.jpg')
img_cropped = img.crop((100, 100, 400, 400))
img_cropped.show()
このコードでは、画像の一部を切り抜き(100,100から400,400の範囲)、その結果を表示します。
Pythonで使用される主要なライブラリ
Pythonには、OpenCV、Pillow、scikit-imageなど、さまざまな画像処理ライブラリがあります。
特に、OpenCVは画像認識にも強力です。
import cv2
img = cv2.imread('image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray_img)
cv2.waitKey(0)
このコードでは、画像をグレースケールに変換して表示しています。
画像フォーマットとデータの取り扱い
JPEG、PNG、BMPなどのフォーマットを扱う際には、それぞれの形式に応じた適切な手法でデータを処理する必要があります。
img = Image.open('image.jpg')
img.save('new_image.png')
このコードは、JPEG形式の画像をPNG形式に変換して保存します。
- 現役エンジニアからスキルを学べる
- 満足度は驚異の97.4%
- 300社以上のIT企業で研修に導入
- 毎日9時〜21時まで、無料カウンセリングを開催中!
OpenCVを使った画像処理の基本操作
OpenCVは、Pythonでの画像処理において非常に強力なライブラリです。
その豊富な機能を使うことで、画像の回転や拡大縮小、フィルター処理が簡単に行えます。
画像の読み込みと表示
OpenCVを使って画像を読み込み、表示することが可能です。
import cv2
img = cv2.imread('image.jpg')
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
このコードは、画像ファイルを読み込み、ウィンドウに表示します。
画像の回転と拡大縮小
画像のサイズを変更したり、回転させたりすることで、画像処理の柔軟性が広がります。
img = cv2.imread('image.jpg')
resized_img = cv2.resize(img, (500, 500))
rotated_img = cv2.rotate(resized_img, cv2.ROTATE_90_CLOCKWISE)
cv2.imshow('Rotated Image', rotated_img)
cv2.waitKey(0)
このコードでは、画像を500×500ピクセルにリサイズし、時計回りに90度回転させています。
フィルター処理とエッジ検出
フィルター処理やエッジ検出を行うことで、画像の重要な特徴を抽出できます。
gray_img = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)
edges = cv2.Canny(gray_img, 100, 200)
cv2.imshow('Edges', edges)
cv2.waitKey(0)
このコードは、Cannyエッジ検出を使用して画像のエッジを検出し、結果を表示します。
Pillowを使った画像編集と変換
Pillowは、Python標準の画像処理ライブラリで、簡単な画像編集に向いています。
画像のフォーマット変換やフィルターの適用が簡単に行える点が魅力です。
Pillowでの画像編集の基礎
Pillowを使うことで、簡単な画像編集が可能です。
from PIL import Image
img = Image.open('image.jpg')
img = img.rotate(45)
img.show()
このコードは、画像を45度回転させ、表示します。
画像の保存と変換方法
画像をさまざまなフォーマットに変換し、保存することができます。
img = Image.open('image.jpg')
img.save('output.png')
このコードは、JPEG形式の画像をPNG形式に変換して保存します。
色調整とフィルターの適用
Pillowを使えば、画像の色調整やフィルターを簡単に適用できます。
from PIL import ImageFilter
img = Image.open('image.jpg')
blurred_img = img.filter(ImageFilter.BLUR)
blurred_img.show()
このコードは、画像にぼかしフィルターを適用し、結果を表示します。
プログラミングスクール受講時には教育訓練給付制度を利用することで、受講料の最大80%の給付を受けることが可能です。
実用例:画像処理の自動化と応用
画像処理を自動化することで、大量の画像を効率的に処理することが可能です。
さらに、機械学習と組み合わせることで、画像認識や分類タスクにも応用できます。
自動化された画像処理のワークフロー
Pythonを使った画像処理では、スクリプトを作成して処理を自動化することができます。
import os
from PIL import Image
for file in os.listdir('images'):
img = Image.open(f'images/{file}')
img = img.convert('L') # Convert to grayscale
img.save(f'processed/{file}')
このコードは、指定したフォルダ内のすべての画像をグレースケールに変換し、別のフォルダに保存します。
画像分類の基礎
機械学習と画像処理を組み合わせることで、画像の分類が可能になります。
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
X_train, X_test, y_train, y_test = train_test_split(images, labels, test_size=0.2)
model = KNeighborsClassifier()
model.fit(X_train, y_train)
このコードは、画像分類の基本で、K-Nearest Neighborsアルゴリズムを使ったモデルのトレーニングを行います。
機械学習と画像認識の連携
画像認識技術は、機械学習と連携させることでさらに高度な解析が可能になります。
import tensorflow as tf
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(64, 64, 3)),
tf.keras.layers.MaxPooling2D(2, 2),
tf.keras.layers.Flatten(),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
このコードは、TensorFlowを使った基本的な画像分類モデルの構築とコンパイルです。
- 20000人が学んだpythonの教材
- 正しい情報をまとめて入手
- 様々なゲームを作成しながら楽しくpythonが身に付く
- 自主学習派はこれ一択!
今なら1年間有効なzoomサポート付き!
まとめ: Pythonでの画像処理をマスターする
Pythonでの画像処理は、OpenCVやPillowなどのライブラリを使うことで、初心者から高度な技術を持つ人まで幅広く活用できます。
基本的な画像操作から、機械学習と組み合わせた応用まで、様々なニーズに対応できる技術です。
この技術を習得し、効率的なワークフローを構築していきましょう。



コメント