Pythonで簡単に始める画像処理:OpenCVとPillowの活用法

python
記事内に広告が含まれています。

画像処理は、現代のさまざまな分野で活用されています。

Pythonを使って画像処理を行うことで、自動化されたワークフローを構築することが可能です。

この記事では、Pythonの人気ライブラリであるOpenCVとPillowを用いた画像処理の基本から実用的な応用までを解説します。

DMM WEBCAMP
  • 未経験者向けプログラミングスクール
  • 現役エンジニアがしっかりサポート
  • 卒業後も安心の転職・副業サポート

Pythonでの画像処理の基礎知識

Pythonには、さまざまな画像処理ライブラリがあります。

OpenCVPillowがその代表で、これらを活用することで高度な画像処理が簡単に実現可能です。

画像フォーマットやデータの扱い方についても基礎的な知識を持っておくことが重要です。

画像処理の基本とは

画像処理は、コンピュータを用いて画像を解析、変換、編集する技術です。

例えば、画像の切り抜きやフィルターの適用、色の調整などが挙げられます。

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には、OpenCVPillowscikit-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形式に変換して保存します。

CodeCamp
  • 現役エンジニアからスキルを学べる
  • 満足度は驚異の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エッジ検出を使用して画像のエッジを検出し、結果を表示します。

【リモートワークには必須】
キャリアに合わせてお得に光回線を利用しよう
ドコモ光
開通後、最短一ヶ月で35,000円のキャッシュバック!
 
auひかり
難しい条件一切なしで、最大12,7000円のキャッシュバック!
 
ソフトバンク光
高額キャッシュバックや豪華特典をお届け!

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を使った基本的な画像分類モデルの構築とコンパイルです。

techgym
  • 20000人が学んだpythonの教材
  • 正しい情報をまとめて入手
  • 様々なゲームを作成しながら楽しくpythonが身に付く
  • 自主学習派はこれ一択!

今なら1年間有効なzoomサポート付き!

まとめ: Pythonでの画像処理をマスターする

Pythonでの画像処理は、OpenCVやPillowなどのライブラリを使うことで、初心者から高度な技術を持つ人まで幅広く活用できます。

基本的な画像操作から、機械学習と組み合わせた応用まで、様々なニーズに対応できる技術です。

この技術を習得し、効率的なワークフローを構築していきましょう。

【給付金が受けられる】おすすめプログラミングスクール!
  • DMM WEBCAMP
    転職成功率98%&離職率2.3%
    転職できなければ全額返金DMM.comグループならで非公開求人も多数
  • テックアカデミー
    【転職保証】受講生の100%が内定獲得!9割以上が未経験からスタート!LINEヤフー監修&万全サポート
  • Aidemy Premium
    【給付金利用の相談歓迎】AI・データ分析学ぶならAidemy Premium
  • ウズウズカレッジ
    初心者・文系出身者でもOK、IT未経験からの専門的な就業サポート

コメント

タイトルとURLをコピーしました