画像を加工したり、写真から文字を読み取ったりする処理は、Pythonを使うことで簡単に実現できます。この記事では、初心者から実務者まで幅広く使われている、画像処理・文字認識に役立つ3つのライブラリ「Pillow」「pytesseract」「opencv-python」について、特徴や使い方をわかりやすく解説します。
Pillowで画像の加工が自由自在に
Pillowは、Python標準の画像処理ライブラリ「PIL」の後継であり、現在では画像のリサイズやトリミング、回転、フィルター処理などに幅広く使われています。
Pillowの特徴は、以下のような簡単なコードで画像加工ができる点です。
from PIL import Image
img = Image.open("sample.jpg")
img_resized = img.resize((200, 200))
img_resized.save("resized.jpg")
画像を扱う場面(Web開発、AI学習用データ前処理、サムネイル生成など)で、まず導入したいライブラリです。
pytesseractで画像内の文字を読み取る
pytesseractは、Googleが開発したOCR(Optical Character Recognition)エンジン「Tesseract」をPythonから操作できるライブラリです。画像内のテキストを抽出するのに最適です。
簡単な例としては、以下のように書けます。
import pytesseract
from PIL import Image
img = Image.open("text_image.png")
text = pytesseract.image_to_string(img, lang="jpn")
print(text)
日本語にも対応しており、領収書、書類、手書きメモなどから文字を自動抽出したい場合に活躍します。
注意点
pytesseractを使うには、別途Tesseract本体のインストールが必要です。WindowsやmacOS、Linux向けに公式バイナリが提供されています。
OpenCVで本格的な画像処理・顔認識
OpenCV(opencv-python)は、世界中で使われている強力な画像処理ライブラリです。画像加工だけでなく、エッジ検出、輪郭抽出、顔認識、リアルタイム映像処理など高度な機能が満載です。
以下は、画像をグレースケール化するサンプルです。
import cv2
img = cv2.imread("sample.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite("gray.jpg", gray)
さらに、カメラと連携してリアルタイムに顔検出を行うなど、AIやロボティクスとの連携にも向いています。
どのライブラリを選べばいいの?
用途 | 推奨ライブラリ |
---|---|
画像の基本加工 | Pillow |
画像からの文字認識 | pytesseract |
高度な画像処理・映像処理 | OpenCV(opencv-python) |
それぞれ得意分野が異なるため、目的に応じて組み合わせて使うのが理想です。例えば、OpenCVで画像を前処理し、pytesseractで文字を抽出するなどの連携もよく行われています。
まとめ
Pythonで画像処理や文字認識を行いたいなら、以下の3つのライブラリがおすすめです。
- Pillow:シンプルな画像加工に最適
- pytesseract:画像内の文字をOCRで読み取れる
- opencv-python:本格的な画像処理やAIとの連携に最適
これらをうまく使いこなせば、画像データを自由に扱えるようになり、AI開発やWebアプリ開発の幅が広がります。ぜひ、環境にインストールして、実際に手を動かしてみてください。