PythonでOpenCVによりカメラの画像を表示する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonでOpenCVによりカメラの画像を表示する方法について現役エンジニアが解説しています。OpenCVは画像認識のプログラムを作成する際によく使われるライブラリです。WindowsやMacにPythonで使えるようにインストールし、Webカメラからの画像を取り込んで表示させます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

PythonでOpenCVによりカメラの画像を表示する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。これが使えるようになると画像認識のプログラムを作れるようになります。ぜひ参考にしてみてください。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PythonでOpenCVによりカメラの画像を表示する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

 

OpenCVとは

Pythonで画像認識のプログラムを作成する際によく使われるライブラリとしてOpenCVがあります。

OpenCVはもともとC++で作成されたライブラリですが、Pythonでも使えるようにライブラリ化されています。パソコンに接続したカメラから画像を取り込む際にOpenCVは必ず使われます。

この記事ではOpenCVのインストールから実際にカメラを接続して画像を表示できるまでの流れを解説します。

OpenCVのインストール方法

OSによってインストール方法が異なるので、お使いのパソコンによって参考にしてください。なお、本記事では

  • Windows
  • Mac
  • Linux

環境下のPython3で動作することを想定しています。

 

Windowsでのインストール

Windowsの場合はpipでセットアップすることが可能です。コマンドプロンプトかPowerShellでpipコマンドが使える前提で下記コマンドを実行します。なお、パソコンにPython3.5以上がインストールされているものとします。

pip install opencv-python

numpyなどの依存パッケージもまとめてインストールされます。もし、エラーが出る場合は下記コマンドでpipをアップデートします。

pip install --upgrade pip

 

Macでのインストール

macの場合はhomebrewを使ったインストールが簡単です。事前にhomebrewをインストールした上でこのあとの内容を進めましょう。

まずは最新版のPythonをインストールします。

brew install python3

PythonでOpenCVを動かす際にはnumpyのインストールが必須です。そこで以下のコマンドでnumpyのインストールを行います。

pip3 install numpy

そして、フォーミュラと呼ばれるインストール、ビルド方法が書かれたスクリプトをOpenCV用に追加します。とはいってもあまり複雑なことはせず、下記のコマンドを実行するだけです。

brew tap homebrew/science

それでは、OpenCVをインストールします。下記のコマンドを実行します。

brew install opencv3 --with-python3 --without-python

 

Linux(Raspberry Pi)でのインストール

LinuxはOSによって様々なインストール方法があるので、この記事ではRaspberry Piでのインストール方法を紹介します。

まずは、下記コマンドを実行してOpenCVをインストールするための依存パッケージをインストールします。

 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

続いて下記コマンドを実行して、pipでOpenCVをインストールします。

sudo pip3 install opencv-python
sudo pip3 install opencv-contrib-python

最後にOpenCVを動かすために必要なプログラムのインストールをします。

sudo apt install libhdf5-103 libqtgui4 libatlas3-base libjasper1 libqt4-test

 

[PR] Pythonで挫折しない学習方法を動画で公開中

OpenCVによりカメラの映像から画像を取得する方法

OpenCVをつかって画像を読み込む際には「cv2.VideoCapture()」を使うことで取得できます。

このとき()内にはOpenCVで認識したカメラIDを指定する必要があります。複数のカメラを接続している際には考慮する必要がありますが、カメラを一つしか接続してない場合は0を指定します。

ちなみに動画を読み込むときは()内の引数に読み込みたい動画のパスを指定するとできます。

取得した画像を表示する方法

取得した 画像を表示する際には、「cv2.VideoCapture()」から1フレームを読み込むために、以下の変数で定義をします。

cap = cv2.VideoCapture(0)
ret, frame = cap.read()

この内、「frame」が取得した画像データを格納している変数になります。

取得したフレームを表示ウィンドウでさせる場合は「cv2.imshow(“Frame”, frame )」を使用します。1つ目の引数の「”Frame”」はウィンドウに表示されるタイトルです。「ret」に関してはフレームを取得できたかどうかを判別するための変数です。

万が一カメラが接続されていない等で画像を取得できなかった際の判断要素としてプログラム内でエラー処理を行うことが可能です。

利用可能なカメラの種類

Open CVではパソコンに内蔵されたカメラやUSBで接続されたWEBカメラが利用可能です。Raspberry Piの場合は設定が別途必要になりますが、カメラモジュールを使うことも可能です。

実際に書いてみよう

それでは、実際に書いてみます。以下が実際にカメラの画像を取り込むコードになります。

import cv2
cap = cv2.VideoCapture(0)
while True:
  # 1フレームずつ取得する。
  ret, frame = cap.read()
  #フレームが取得できなかった場合は、画面を閉じる
  if not ret:
    break
    
  # ウィンドウに出力
  cv2.imshow("Frame", frame)
  key = cv2.waitKey(1)
  # Escキーを入力されたら画面を閉じる
  if key == 27:
    break
cap.release()
cv2.destroyAllWindows()

こちらのコードを実行し、画像のようにパソコンに接続したカメラから取得した画像を表示されたら成功です。

Pythonでopencvを使って、パソコンに接続しているカメラの映像を取得する方法

監修してくれたメンター

メンター三浦

モバイルゲームを運用している会社のエンジニアをしています。趣味でWEB開発やクラウドコンピューティングもやっており、ソフトもハードもなんでもやります。

TechAcademyジュニアではPythonロボティクスコースを担当しています。好きな言語はPython, Node.js。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。