本記事ではPythonライブラリの「OpenCV」について解説します。具体的には、OpenCVの概要やOpenCVを使ってできること、OpenCVを使うメリット、インストール方法などをご紹介します。
本記事ではPythonライブラリについてより深く知りたい方に向けて、画像・動画処理などの解析機能をまとめた汎用性の高いPythonライブラリの「OpenCV」について、何ができるのかや、OpenCVを使うメリットなどを解説します。
まずは「Python」のライブラリのひとつである「OpenCV」の概要を知るために、OpenCVとはどのようなライブラリかを解説します。
「OpenCV」は、画像処理や動画処理・解析・機械学習などの機能をまとめたライブラリです。アメリカの半導体素子メーカーのIntelが開発したオープンソースのライブラリで、誰でも無料で利用できます。
「OpenCV」は主に「Python」や「C++」で使用でき、画像や動画内にある物体の位置情報やパターンをプログラムで機械に識別させられます。とくに人工知能開発でよく使われる「Python」と組み合わせることで、AIによる画像認識が可能です。
「Windows」や「Linux」「iOS」などの各種OSにも対応しているので、さまざまな開発に利用しやすいライブラリといえるでしょう。
「OpenCV」を使って実現できることは主に6つです。
ほかにもできることはありますが、今回は代表的な機能を紹介します。
「OpenCV」では画像データや動画データなどの非数値データを、「RGB」という単位で数値として読み込みます。「RGB」を読み取ることで画像データなどを数値化できるので、数値を入力するだけで画像の表示も可能です。画像はカラー表示と白黒表示に対応しています。
コンピュータは数字データしか理解できません。したがって、画像データを数値化させることでコンピュータに画像データの定量的な評価をさせることが可能です。
画像の読み込みの具体的な方法は、「imreadメソッド」で引数にファイル名を指定するだけです。画像を表示させるには、「imshowメソッド」や「waitKeyメソッド」を利用します。以下は、画像を読み込んで出力させるコードの例です。
import cv2 image = cv2.imread(“test.jpg”) # 画像データ読み込み print(image) # RGB値出力
「OpenCV」を使えば画像の編集も可能です。画像のサイズ変更やトリミングができ、さまざまな素材を扱えます。たとえば、下記のコードは画像をリサイズするプログラムです。
import cv2 #OpenCVをインポート image = cv2.imread("test.jpg") # 画像データ読み込み image_new = cv2.resize(image, (400,150)) # リサイズ
このように、たった3行のプログラムで画像のリサイズができます。機械学習では、画像の大きさを統一した方が、精度が良くなったり学習に都合が良かったりするので、機械学習や人工知能開発などでは必須の処理です。
「OpenCV」では画像中の物体検出も可能です。物体検出とは、画像に映っている人の顔や車など、特定の物体を検出し、モニターなどに表示させる技術です。検出した物体は、四角い領域などでわかりやすいように囲みます。以下は物体検出のサンプルコードです。
import cv2 #OpenCVをインポート image = cv2.imread("test.jpg") # 画像データ読み込み # 分類器の読み込み face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt.xml') # 人の顔を検出 faces= face_cascade.detectMultiScale(image, 1.1, 3) #検出した顔を黒い線で囲む for (x,y,w,h) in faces: face = cv2.rectangle(face,(x,y),(x+w,y+h),(1,1,1),2) roi_color = face[y:y+h, x:x+w]
「OpenCV」で画像のノイズ除去もできます。「OpenCV」内の「blurメソッド」や「GaussianBlurメソッド」を使うことで、画像のノイズをフィルターに通してノイズを除去することが可能です。画像処理でノイズ除去をおこなうメリットは、画像解析の効率や精度を向上できる点です。画像処理の分野では必須の前処理となります。
以下は、「blurメソッド」と「GaussianBlurメソッド」を使用してノイズ除去をするプログラムの例です。
import cv2 #OpenCVをインポート image = cv2.imread("test.jpg") # 画像データ読み込み) # blurメソッドでノイズ除去 smooth_image = cv2.blur(image, (9, 9)) # GaussianBlurメソッドでノイズ除去 smooth_image = cv2.GaussianBlur(image, (9, 9), 2)
「OpenCV」でテンプレートマッチングも可能です。テンプレートマッチングとは画像処理の方法のひとつで、複数の画像で一致する部分を検出する技術です。テンプレートマッチングにより、画像の一部を型紙のようにテンプレート化することで他の画像に似た部分があるかを検知できます。
以下は、「matchTemplateメソッド」を使用したテンプレートマッチングのプログラム例です。
import cv2 #OpenCVをインポート import numpy as np from matplotlib import pyplot as plt image = cv2.imread("test.jpg") # 画像データ読み込み) image_gray = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY) #グレースケールへの変換 template = cv2.imread(“temp.jpg”, 0) # テンプレート w, h=template.shape[::-1] res = cv2.matchTemplate(image_gray,template,cv2.TM_CCOEFF_NORMED) threshold = 0.5 loc = np.where( res >= threshold) for pt in zip(*loc[::-1]): cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)
「OpenCV」を使うと、グレースケールへの変換も可能です。グレースケールへの変換とは、画像をカラー画像から白黒画像への変換です。カラー画像だと計算量やメモリ使用量が多くなるので、必ずグレースケールへの変換を前処理としておこない負担を減らします。とくに、画像の深層学習といったハードウェアのリソースを消費する作業では必要な処理です。
以下は、グレースケールへの変換のサンプルコードです。
import cv2 #OpenCVをインポート import numpy as np image = cv2.imread("test.jpg") # 画像データ読み込み # グレースケールへの変換 im_gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
「OpenCV」を使うメリットは主に以下の4つです。
メリットがわかると、「OpenCV」の必要性や他の類似ツールとの比較ができます。それぞれ、詳しく解説します。
「OpenCV」は「Python」と組み合わせて使うことが多いので、「Python」向けの専用パッケージがリリースされています。専用パッケージでのインストールは、モジュールをインストールするだけで完了です。
実装する際も、モジュールからメソッドを呼び出すだけで簡単に利用できます。
インストールの方法も、基本的には「Windows」なら「pip」、「Mac」なら「brew」を使うだけです。
「OpenCV」は、画像解析などの準備作業に使用可能です。たとえば画像処理では、事前に画像ノイズの除去や欠損画像を削除する統計処理を施す前処理が必要です。
ほかにも画像のリサイズをおこなってデータセットの画像サイズを統一したり、計算時間を早めるためにグレースケール変換をおこなったりする前処理が「OpenCV」だけで可能になります。
「OpenCV」で画像の前処理をおこなったら、そのまま「OpenCV」のメソッドで解析できるのでスムーズな画像解析が可能です。
「OpenCV」では、画像のクラス分類のメソッドが複数用意されています。クラス分類のメソッドには、畳み込みニューラルネットワークなどの機械学習手法を利用した分類を実現させる機能があります。
これらのメソッドを利用すれば、物体検出とクラス分類を絡めたタスクを数行のコードを書くだけで簡単に実装することが可能です。
「OpenCV」を使えば画像処理のクラス分類が効果的におこなえるので、機械学習エンジニアには有益です。
「OpenCV」は、ARやVRのコンテンツ制作機能も実装されています。
ARとは現実世界に仮想世界の要素を付与する技術で、アプリでバーコードをかざすだけで画面上に物体が現れて動く技術もそのひとつです。
VRとは完全にバーチャル世界の体験ができる技術で、VRゴーグルやメタバースがVRにあたります。
「OpenCV」を使えば、画像内で対象物の位置情報を把握し動きの解析や追跡が可能です。そのため、ARやVRの開発につながります。
ここでは、「OpenCV」のインストール手順を詳しく解説します。具体的な手順は以下の通りです。
また「Python」だけで「OpenCV」のインストール方法も解説するので、ぜひ参考にしてください。
はじめにプログラミング言語の「Python」をインストールします。ここでは「Windows」環境でのインストール方法を解説します。
まず「Python」の公式サイトにアクセスしてください。
「ダウンロード」をクリックすると、その日時点での最新バージョンのインストーラー(下図赤枠)が表示されるので、クリックしてダウンロードしましょう。
インストーラーを起動すると、下記の画面が表示されます。
「Install Now」をクリックして、インストールを進めてください。インストール中におこなう作業はありません。問題なくインストールが完了すると、下図が表示されます。
下図の画面が表示されたら「Close」をクリックして、画面を閉じてください。
「Python」をインストールしたら、「Python」専用に開発された統合開発環境(IDE)の「PyCharm」をインストールします。「PyCharm」には「Python」の開発を効率的におこなう機能が多数実装されているため、開発しやすいです。たとえばコードを予測補完してくれるアシスタント機能や、バグを事前に知らせてくれる機能があります。
「PyCharm」は以下の各OSで動作が可能です。ここでは「Window」環境でのインストールを解説します。
まず「PyCharm」の公式サイトへ行き、インストーラーをダウンロードしてください。
PyCharm:JetBrainsによるプロ開発者向けPython IDE
画面中央の「ダウンロード」ボタンをクリックすると、OSごとのインストーラーをダウンロードできる画面に遷移できます。
「PyCharm」には有料の「Professional」版と無料の「Community」版があります。
「Python」のプログラミングを勉強するなら、無料版の機能で十分です。今回は上図右側にある黒いボタンの「Community」をダウンロードします。
学習を進めたあとに本格的に開発をする場合は、有料版に移行して「Python」プログラミングのスキルアップをしてください。
デスクトップにショートカットを作成する場合に合わせて32bitか64bitかを選択します。
「Python」と「PyCharm」のインストールが完了したら、「OpenCV」をインストールします。「OpenCV」は「PyCharm」からインストールできます。以下の手順でインストールしてください。
を選んでまとめてインストールしてください。
計算用ライブラリの「Numpy」とプロット作成用ライブラリの「matplotlib」は、「OpenCV」との併用がよく使われるライブラリです。あわせてインストールをしておくことをおすすめします。
ここでは「PyCharm」からではなく、「Python」だけで「OpenCV」をインストールする方法を紹介します。方法はコマンドを打ち込んで実行するだけです。
ただし、「Windows」環境においては「pipコマンド」にパスを通しておかないとコマンドを実行できません。
まずはコマンドプロンプトを起動して以下のコマンドを実行し、pipコマンドを使用できるかを確認してください。
pip --version
pipコマンドが使える状態であれば、上記のようにインストール済みの「Python」のバージョンが表示されます。
pipコマンドがインストールされていない場合は、以下のようなエラーメッセージが表示されます。
上記メッセージが表示された場合は、「Windows」の環境変数の追加が必要です。
環境変数を追加するにはスタートボタンから「環境変数を編集」をクリックしてください。
環境変数の画面が開いたら、「Path」(下図赤線部)をダブルクリックします。
「新規」をクリックして、pin.exeまでのパスを追加してください。
pin.exeまでのパスはpin.exeがあるフォルダを検索し、pin.exeファイルを右クリックして「パスのコピー」をすると取得できます。
コピーしたパスの例は以下の通りです。
C:\Users\xxxxxx\AppData\Local\Programs\Python\Python311\Scripts\pip.exe
コピーしたパスのうち、一番右の「\pin.exe」を除いたものを環境変数の新しいパスとして追加してください。「OK」ボタンを押し、コマンドプロンプトを再起動するとpipコマンドを実行できます。
パスを設定したら、再び以下のコマンドを実行して「OpenCV」をインストールしてください。
pip install opencv-python
本記事では「OpenCV」の概要や使ってできること、メリット、インストール方法を解説しました。
近年「OpenCV」は、画像処理や人工知能の開発現場でも非常に使用されるライブラリです。「OpenCV」の需要は高まっており習得すれば仕事に活用できるため、記事を参考にしてぜひ学習を進めてください。
2024.06.17
子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介
#プログラミングスクール
2022.01.06
【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説
#プログラミングスクール
2024.01.26
【未経験でも転職可】30代におすすめプログラミングスクール8選!
#プログラミングスクール
2024.01.26
初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説
#JAVA
2024.01.26
忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説
#プログラミングスクール
2022.01.06
【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介
#プログラミングスクール
2024.01.26
【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説
#プログラミングスクール
2024.01.26
【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説
#プログラミングスクール
2024.01.26
【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説
#プログラミングスクール
2024.01.26
【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説
#プログラミングスクール