Python

最終更新日: 2023.05.02 (公開: 2023.05.02)

OpenCVとは?できることや特徴、インストール方法を徹底解説!

OpenCVとは?できることや特徴、インストール方法を徹底解説!

本記事ではPythonライブラリの「OpenCV」について解説します。具体的には、OpenCVの概要やOpenCVを使ってできること、OpenCVを使うメリット、インストール方法などをご紹介します。

本記事ではPythonライブラリについてより深く知りたい方に向けて、画像・動画処理などの解析機能をまとめた汎用性の高いPythonライブラリの「OpenCV」について、何ができるのかや、OpenCVを使うメリットなどを解説します。

OpenCVとは?

OpenCVとは?

まずは「Python」のライブラリのひとつである「OpenCV」の概要を知るために、OpenCVとはどのようなライブラリかを解説します。

PythonやC++で画像や動画処理ができる

「OpenCV」は、画像処理や動画処理・解析・機械学習などの機能をまとめたライブラリです。アメリカの半導体素子メーカーのIntelが開発したオープンソースのライブラリで、誰でも無料で利用できます。

「OpenCV」は主に「Python」や「C++」で使用でき、画像や動画内にある物体の位置情報やパターンをプログラムで機械に識別させられます。とくに人工知能開発でよく使われる「Python」と組み合わせることで、AIによる画像認識が可能です。

「Windows」や「Linux」「iOS」などの各種OSにも対応しているので、さまざまな開発に利用しやすいライブラリといえるでしょう。

OpenCVでは何ができる?

OpenCVを使うメリットは?

「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を使うメリットは?

OpenCVを使うメリットは?

「OpenCV」を使うメリットは主に以下の4つです。

  • Python向けのパッケージがインストールできる
  • 画像処理の準備作業が可能になる
  • クラス分類のための物体検出に使える
  • ARやVRの開発ができる

メリットがわかると、「OpenCV」の必要性や他の類似ツールとの比較ができます。それぞれ、詳しく解説します。

Python向けのパッケージがインストールできる

「OpenCV」は「Python」と組み合わせて使うことが多いので、「Python」向けの専用パッケージがリリースされています。専用パッケージでのインストールは、モジュールをインストールするだけで完了です。

実装する際も、モジュールからメソッドを呼び出すだけで簡単に利用できます。

インストールの方法も、基本的には「Windows」なら「pip」、「Mac」なら「brew」を使うだけです。

画像処理の準備作業が可能

「OpenCV」は、画像解析などの準備作業に使用可能です。たとえば画像処理では、事前に画像ノイズの除去や欠損画像を削除する統計処理を施す前処理が必要です。

ほかにも画像のリサイズをおこなってデータセットの画像サイズを統一したり、計算時間を早めるためにグレースケール変換をおこなったりする前処理が「OpenCV」だけで可能になります。

「OpenCV」で画像の前処理をおこなったら、そのまま「OpenCV」のメソッドで解析できるのでスムーズな画像解析が可能です。

クラス分類のための物体検出に使える

「OpenCV」では、画像のクラス分類のメソッドが複数用意されています。クラス分類のメソッドには、畳み込みニューラルネットワークなどの機械学習手法を利用した分類を実現させる機能があります。

これらのメソッドを利用すれば、物体検出とクラス分類を絡めたタスクを数行のコードを書くだけで簡単に実装することが可能です。

「OpenCV」を使えば画像処理のクラス分類が効果的におこなえるので、機械学習エンジニアには有益です。

AR/VRの開発ができる

「OpenCV」は、ARやVRのコンテンツ制作機能も実装されています。

ARとは現実世界に仮想世界の要素を付与する技術で、アプリでバーコードをかざすだけで画面上に物体が現れて動く技術もそのひとつです。

VRとは完全にバーチャル世界の体験ができる技術で、VRゴーグルやメタバースがVRにあたります。

「OpenCV」を使えば、画像内で対象物の位置情報を把握し動きの解析や追跡が可能です。そのため、ARやVRの開発につながります。

OpenCVをインストールする方法を紹介

OpenCVをインストールする方法を紹介

ここでは、「OpenCV」のインストール手順を詳しく解説します。具体的な手順は以下の通りです。

  • Pythonをインストールする
  • PyCharmをインストールする
  • OpenCVをインストールする

また「Python」だけで「OpenCV」のインストール方法も解説するので、ぜひ参考にしてください。

Pythonをインストールしよう

はじめにプログラミング言語の「Python」をインストールします。ここでは「Windows」環境でのインストール方法を解説します。

まず「Python」の公式サイトにアクセスしてください。

python-officialsite

Welcome to Python.org

「ダウンロード」をクリックすると、その日時点での最新バージョンのインストーラー(下図赤枠)が表示されるので、クリックしてダウンロードしましょう。

latest-version-installer

インストーラーを起動すると、下記の画面が表示されます。

click-installnow

「Install Now」をクリックして、インストールを進めてください。インストール中におこなう作業はありません。問題なくインストールが完了すると、下図が表示されます。

下図の画面が表示されたら「Close」をクリックして、画面を閉じてください。

Installation_complete

PyCharmをインストールしよう

「Python」をインストールしたら、「Python」専用に開発された統合開発環境(IDE)の「PyCharm」をインストールします。「PyCharm」には「Python」の開発を効率的におこなう機能が多数実装されているため、開発しやすいです。たとえばコードを予測補完してくれるアシスタント機能や、バグを事前に知らせてくれる機能があります。

「PyCharm」は以下の各OSで動作が可能です。ここでは「Window」環境でのインストールを解説します。

  • Windows
  • macOS
  • Linux

まず「PyCharm」の公式サイトへ行き、インストーラーをダウンロードしてください。

pycharm-officialsite

PyCharm:JetBrainsによるプロ開発者向けPython IDE

画面中央の「ダウンロード」ボタンをクリックすると、OSごとのインストーラーをダウンロードできる画面に遷移できます。

downloadpycharm

「PyCharm」には有料の「Professional」版と無料の「Community」版があります。

「Python」のプログラミングを勉強するなら、無料版の機能で十分です。今回は上図右側にある黒いボタンの「Community」をダウンロードします。

学習を進めたあとに本格的に開発をする場合は、有料版に移行して「Python」プログラミングのスキルアップをしてください。

デスクトップにショートカットを作成する場合に合わせて32bitか64bitかを選択します。

OpenCVをインストールしよう

「Python」と「PyCharm」のインストールが完了したら、「OpenCV」をインストールします。「OpenCV」は「PyCharm」からインストールできます。以下の手順でインストールしてください。

  1. 「PyCharm」を開き、「Create New Project」で新規プロジェクトを作成します。
  2. 「Location」に保存場所を入れ、「Create」をクリックします。
  3. 「File→Settings」から「Project Interpreter」を選択し、「+」マークをクリックして
  • 「OpenCV-Python」
  • 「Numpy」
  • 「matplotlib」

を選んでまとめてインストールしてください。

計算用ライブラリの「Numpy」とプロット作成用ライブラリの「matplotlib」は、「OpenCV」との併用がよく使われるライブラリです。あわせてインストールをしておくことをおすすめします。

PythonだけでOpenCVをインストールするには?

ここでは「PyCharm」からではなく、「Python」だけで「OpenCV」をインストールする方法を紹介します。方法はコマンドを打ち込んで実行するだけです。

  • Windowsユーザーであれば、コマンドプロンプトで「pip install opencv-python」を打ち込んでEnterを押します。
  • Macユーザーであれば、ターミナルで同じく「pip install opencv-python」を入力してEnterを押します。

ただし、「Windows」環境においては「pipコマンド」にパスを通しておかないとコマンドを実行できません。

まずはコマンドプロンプトを起動して以下のコマンドを実行し、pipコマンドを使用できるかを確認してください。

pip --version
pip-command

pipコマンドが使える状態であれば、上記のようにインストール済みの「Python」のバージョンが表示されます。

pipコマンドがインストールされていない場合は、以下のようなエラーメッセージが表示されます。

用語 ‘pip’ は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません

上記メッセージが表示された場合は、「Windows」の環境変数の追加が必要です。

環境変数を追加するにはスタートボタンから「環境変数を編集」をクリックしてください。

Edit-environment-function

環境変数の画面が開いたら、「Path」(下図赤線部)をダブルクリックします。

path

「新規」をクリックして、pin.exeまでのパスを追加してください。

new

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」の概要や使ってできること、メリット、インストール方法を解説しました。

近年「OpenCV」は、画像処理や人工知能の開発現場でも非常に使用されるライブラリです。「OpenCV」の需要は高まっており習得すれば仕事に活用できるため、記事を参考にしてぜひ学習を進めてください。

アクセスランキング 人気のある記事をピックアップ!

    コードカキタイがオススメする記事!

    1. 子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      2024.06.17

      子供におすすめのプログラミングスクール10選!学習メリットや教室選びのコツも紹介

      #プログラミングスクール

    2. 【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      2022.01.06

      【完全版】大学生におすすめのプログラミングスクール13選!選ぶコツも詳しく解説

      #プログラミングスクール

    3. 【未経験でも転職可】30代におすすめプログラミングスクール8選!

      2024.01.26

      【未経験でも転職可】30代におすすめプログラミングスクール8選!

      #プログラミングスクール

    4. 初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      2024.01.26

      初心者必見!独学のJava学習方法とおすすめ本、アプリを詳しく解説

      #JAVA

    5. 忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      2024.01.26

      忙しい社会人におすすめプログラミングスクール15選!失敗しない選び方も詳しく解説

      #プログラミングスクール

    1. 【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      2022.01.06

      【無料あり】大阪のおすすめプログラミングスクール14選!スクール選びのコツも紹介

      #プログラミングスクール

    2. 【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      2024.01.26

      【目的別】東京のおすすめプログラミングスクール20選!スクール選びのコツも徹底解説

      #プログラミングスクール

    3. 【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【無料あり】福岡のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    4. 【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      2024.01.26

      【徹底比較】名古屋のおすすめプログラミングスクール13選!選び方も詳しく解説

      #プログラミングスクール

    5. 【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      2024.01.26

      【徹底比較】おすすめのプログラミングスクール18選!失敗しない選び方も徹底解説

      #プログラミングスクール