コンピューター ビジョンは、コンピューターを使用して人間の視覚システムの機能をシミュレートおよび実現することに特化した人工知能の分野です。現代の科学技術の発展に伴い、コンピュータービジョンはロボット、セキュリティ、医療、自動運転などのさまざまな分野で広く活用されています。
OpenCV (オープン ソース コンピューター ビジョン) は、インテル コーポレーションによって開始および保守されているクロスプラットフォームのオープンソース コンピューター ビジョン ライブラリです。画像検出、特徴抽出、ターゲット追跡、顔認識などを含む、豊富な画像処理およびコンピュータビジョン機能を提供します。機械学習とデータサイエンスの分野での Python の人気により、Python の OpenCV バージョンも大きな注目を集めています。この記事ではPythonでのOpenCVの使い方と具体的な実装について紹介します。
OpenCV のインストール
OpenCV を使用する前に、関連するライブラリと依存関係をインストールする必要があります。 Python では、pip コマンドを使用してインストールできます。
pip install opencv-python
pip install opencv-contrib-python
これら 2 つのコマンドは、OpenCV の基本バージョンと拡張バージョンをそれぞれインストールします。拡張バージョンには、次のものが含まれています。このバージョンでは使用できない基本機能。
画像の読み取りと表示
OpenCV を使用して画像を処理する最初のステップは、画像をプログラムに読み取ることです。 OpenCV には画像を読み取るための cv2.imread() 関数が用意されており、読み取られた画像は NumPy 配列の形式で保存されます。
import cv2
img = cv2.imread('example.jpg')
画像を読み取った後、cv2.imshow() 関数を使用して、画像 。この関数は 2 つのパラメータを受け取ります。最初のパラメータはウィンドウの名前で、2 番目のパラメータは表示されるイメージです。
cv2.imshow('example', img)
cv2.waitKey() 関数を使用して、ユーザーがいずれかのキーを押すのを待ちます。ウィンドウは自動的に閉じます。
cv2.waitKey(0)
画像のサイズは、img.shape を使用して取得できます。これは 3 つの要素 (高さ、幅、深さ) を返します。ここで、高さは画像の高さを表します。画像、幅は画像の幅を表し、深さはピクセルあたりのビット数を表します。深度は、画像がカラー画像の場合は 3、グレースケール画像の場合は 1 です。
画像処理と操作
OpenCVは豊富な画像処理と操作機能を提供します。このうち最も単純な処理は、カラー画像をグレースケール画像に変換するグレースケール処理であり、これには cv2.cvtColor() 関数を使用する必要があります。
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.COLOR_BGR2GRAY はグレースケール処理で定義されます。ここで、cv2 は OpenCV モジュールの名前です。 OpenCV の組み込み画像形式は一般的な RGB ではなく BGR であるため、パラメータの順序は BGR です。
グレースケール処理以外にも、画像サイズの調整、回転、平行移動など、よく使われる操作機能がいくつかあります。
resize = cv2.resize(img, (600, 600), interpolation=cv2.INTER_AREA)
M = cv2.getRotationMatrix2D ((列数) / 2, rows / 2), 45, 1)
rotated = cv2.warpAffine(img, M, (cols, rows))
#In OpenCV は、基本的な画像処理と操作に加えて、さまざまな特徴抽出と検出機能も提供します。これらの関数は、画像内の角、線、輪郭などの特徴を検出して抽出できます。
コーナー検出は、マシン ビジョンやコンピューター ビジョンの分野で広く使用されているテクノロジであり、画像マッチング、ターゲット追跡、3 次元再構成などのアプリケーションに使用できます。 OpenCV は、コーナー検出を完了するための cv2.goodFeatureToTrack() 関数を提供します。
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
corners = cv2.good featuresToTrack(gray, 100, 0.01, 10)corners = np.int0(corners)
このうち、パラメータ grey はグレースケール処理された画像、パラメータ 100 は検出されたコーナー点の数を表し、パラメータ 0.01 はコーナー品質係数を表すために使用されるqualityLevel、パラメータ 10 は minDistance です。 2 つの角点の間の最小距離を表します。
さらに、SIFT、SURF、ORB などの他の特徴検出方法もあります。
結論
OpenCV は、さまざまな分野で広く使用されている強力なコンピューター ビジョン ライブラリです。 Python では、OpenCV を使用して画像処理とコンピューター ビジョンのタスクを簡単に実装できます。この記事では、Python での OpenCV の基本的な使い方と一般的な操作を紹介します。
以上がPythonのコンピュータビジョンライブラリopencvの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。