今日の世界にはあらゆる種類のデータが溢れており、画像はその中で非常に重要な部分を占めています。ただし、これを有用にするには、これらの画像を処理する必要があります。画像処理は、デジタル画像の品質を向上させたり、そこから情報を抽出して何らかの方法で使用したりすることを目的として、デジタル画像を分析および操作するプロセスです。
画像処理における一般的なタスクには、画像の表示、基本操作 (トリミング、反転、回転など)、画像のセグメンテーション、分類と特徴抽出、画像の復元と画像認識などが含まれます。 Python は、この科学プログラミング言語の人気が高まっており、多くの最先端の画像処理ツールを無料で利用できるため、画像処理タスクには最適な選択肢です。
画像処理タスクに使用される一般的な Python ライブラリをいくつか見てみましょう。
scikit-image は、numpy 配列に基づくオープン ソース Python パッケージです。研究、教育、産業アプリケーション向けのアルゴリズムとユーティリティを実装します。 Python の初心者にとっても非常にシンプルなライブラリです。ライブラリのコードは非常に高品質であり、ボランティアの活発なコミュニティによって作成され、ピアレビューを受けています。
使用例: 画像フィルタリング、テンプレート マッチング。
「skimage」を使用してこのライブラリをインポートできます。ほとんどの機能はサブモジュールにあります。
import matplotlib.pyplot as plt %matplotlib inline from skimage import data,filters image = data.coins() # ... or any other NumPy array! edges = filters.sobel(image) plt.imshow(edges, cmap='gray')
テンプレート マッチング (match_template 関数を使用)
Numpy は Python プログラミングのコア ライブラリの 1 つであり、配列構造をサポートしています。画像は基本的に、データ ポイントのピクセルを含む標準的な Numpy 配列です。したがって、画像のピクセル値は、スライス、マスキング、派手なインデックス付けなどの基本的な NumPy 操作を使用して変更できます。画像は skimage を使用してロードし、matplotlib を使用して表示できます。
使用例: Numpy を使用して画像の感度を下げる:
import numpy as np from skimage import data import matplotlib.pyplot as plt %matplotlib inline image = data.camera() type(image) numpy.ndarray #Image is a numpy array mask = image < 87 image[mask]=255 plt.imshow(image, cmap='gray')
scipy は Python のもう 1 つのコア科学モジュールです, Numpy と同様に、基本的な画像処理や処理タスクに使用できます。サブモジュール scipy.ndimage が n 次元の NumPy 配列を操作する関数を提供していることは言及する価値があります。このパッケージには現在、線形および非線形フィルタリング、バイナリ モルフォロジー、B スプライン補間、オブジェクト測定などの機能が含まれています。
使用例: SciPy のガウス フィルターを使用して画像をぼかします:
from scipy import misc,ndimage face = misc.face() blurred_face = ndimage.gaussian_filter(face, sigma=3) very_blurred = ndimage.gaussian_filter(face, sigma=5) #Results plt.imshow(<image to be displayed>)
PIL ( Python Imaging Library) は、さまざまな画像ファイル形式を開いたり、処理したり、保存したりするためのサポートを追加する無料の Python プログラミング言語ライブラリです。しかし、開発は停滞しており、最後の更新は 2009 年でした。幸いなことに、PIL には Pillow と呼ばれる現在開発中のフォークがあり、インストールが非常に簡単です。 Pillow はすべての主要なオペレーティング システムで実行され、Python 3 をサポートします。このライブラリには、ポイント操作、一連の組み込みコンボリューション カーネルを使用したフィルタリング、色空間変換などの基本的な画像処理関数が含まれています。
使用例: ImageFilter を使用して Pillow の画像を強化する:
from PIL import Image, ImageFilter #Read image im = Image.open( 'image.jpg' ) #Display image im.show() from PIL import ImageEnhance enh = ImageEnhance.Contrast(im) enh.enhance(1.8).show("30% more contrast")
OpenCV (オープンソース コンピューター ビジョン ライブラリ (オープン ソース コンピューター ビジョン ライブラリ) は、コンピューター ビジョン アプリケーションで最も広く使用されているライブラリの 1 つです。 OpenCV-Python は OpenCV の Python API です。 OpenCV-Python は (バックエンドが C/C で書かれたコードで構成されているため) 速いだけでなく、(フロントエンドの Python ラッパーのおかげで) コーディングとデプロイも簡単です。このため、計算負荷の高いコンピューター ビジョン プログラムを実行する場合に最適です。
使用例: ピラミッドを使用して「Orapple」という名前の新しいフルーツを作成する関数
SimpleCV は、コンピューター ビジョン アプリケーションを構築するためのオープンソース フレームワークでもあります。これにより、ビット深度、ファイル形式、色空間を最初に理解することなく、OpenCV などの高性能コンピューター ビジョン ライブラリにアクセスできるようになります。 OpenCV よりも学習がはるかに簡単で、キャッチフレーズにあるように、「コンピュータ ビジョンを簡単にします」となります。 SimpleCV を支持するいくつかのポイントは次のとおりです:
#使用例
Mahotas は別のコンピュータ ビジョンであり、 Python用の画像処理ライブラリです。これには、従来の画像処理機能 (フィルタリングや形態学的操作など) に加え、特徴計算のためのより最新のコンピューター ビジョン機能 (特徴点検出や局所記述子など) が含まれています。インターフェースは Python で作られており、迅速な開発に適していますが、アルゴリズムは C で実装されており、速度が最適化されています。 Mahotas ライブラリは高速で、コードはシンプルで、(他のライブラリへの) 依存関係は最小限です。詳細については、公式ドキュメントを読むことをお勧めします。
使用例
Mahotas ライブラリは、単純なコードを使用して作業を完了します。 「ウォーリーを探せ」の問題では、Mahotas は非常に少ないコードで素晴らしい仕事をしてくれました。
ITK (Insight Segmentation and Registration Toolkit) は、開発者に次の機能を提供するオープンソースのクロスプラットフォーム システムです。画像解析のための包括的なソフトウェア ツールのセット。その中で、SimpleITK は ITK の上に構築された簡素化されたレイヤーであり、ラピッド プロトタイピング、教育、およびスクリプト言語での使用を促進することを目的としています。 SimpleITK は、一般的なフィルタリング操作、画像のセグメンテーション、位置合わせをサポートする多数のコンポーネントを備えた画像分析ツールキットです。 SimpleITK 自体は C で書かれていますが、Python を含む多数のプログラミング言語で使用できます。
SimpleITK を教育および研究活動に使用する方法を説明する Jupyter ノートブックが多数あります。このノートブックでは、Python および R プログラミング言語を使用したインタラクティブな画像分析に SimpleITK を使用する方法を示します。
使用例
以下のアニメーションは、SimpleITK と Python を使用して作成された厳密な CT/MR 登録プロセスを視覚化したものです。
pgmagick は、GraphicsMagick ライブラリの Python ベースのラッパーです。 GraphicsMagick 画像処理システムは、画像処理のスイス アーミー ナイフと呼ばれることもあります。 DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM、TIFF などの重要な形式を含む、88 を超える主要形式の画像の読み取り、書き込み、操作をサポートするツールとライブラリの強力かつ効率的なコレクションを提供します。 。
使用例: 画像のスケーリング、エッジ抽出
画像のスケーリング
##エッジ抽出
以上がPython の画像処理ツール トップ 10の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。