PythonでOpenCVによりカメラの画像を表示する方法を現役エンジニアが解説【初心者向け】
初心者向けにPythonでOpenCVによりカメラの画像を表示する方法について現役エンジニアが解説しています。OpenCVは画像認識のプログラムを作成する際によく使われるライブラリです。WindowsやMacにPythonで使えるようにインストールし、Webカメラからの画像を取り込んで表示させます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
PythonでOpenCVによりカメラの画像を表示する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
PythonのOpenCVを利用すると、画像認識のプログラムを作れるようになります。
実務でも、PythonのOpenCVを利用して、画像認識を利用した医療診断を行いますのでぜひ学習してみてください。
目次
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
PythonでOpenCVによりカメラの画像を表示する方法について詳しく説明していくね!
お願いします!
OpenCVとは
Pythonで画像認識のプログラムを作成する際によく使われるライブラリとしてOpenCVがあります。
OpenCVはもともとC++で作成されたライブラリですが、Pythonでも使えるようにライブラリ化されています。
パソコンに接続したカメラから画像を取り込む際に、OpenCVは必ず使われます。
この記事ではOpenCVのインストールから、実際にカメラを接続して画像を表示できるまでの流れを解説します。
OpenCVのインストール方法
OSによってインストール方法が異なるので、お使いのパソコンによって参考にしてください。
なお、本記事では以下の環境下のPython3で動作することを想定しています。
- Windows
- Mac
- Linux
Windowsでのインストール
Windowsの場合は、pipでセットアップすることが可能です。
なお、パソコンにPython3.10以上がインストールされているものとします。
Python3.10のインストール方法に関しては、まずはここから!Pythonのインストール方法【初心者向け】を参考にしてみてください。
Python3.4以降、Python本体にpipも付属するので、pipそのものの追加インストールは不要です。
pipでOpenCVをインストール
次のコマンドで、OpenCVをインストールできます。
また、NumPyなどの依存パッケージもまとめてインストールされます。
pip install opencv-python
エラーが発生する場合
もし、エラーが出る場合は、下記コマンドでpipをアップデートします。
pip install --upgrade pip
Macでのインストール
Macの場合はHomebrewを使ったインストールを行うと便利です。
事前にHomebrewをインストールした上で、このあとの内容を進めましょう。
Homebrewをインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
最新版のPythonをインストール
brew install python3
NumPyのインストール
PythonでOpenCVを動かす際にはNumPyのインストールが必須です。
そこで、以下のコマンドでNumPyのインストールを行います。
pip3 install numpy
スクリプトの追加
そして、フォーミュラと呼ばれるインストール、ビルド方法が書かれたスクリプトをOpenCV用に追加します。
brew tap homebrew/science
OpenCVをインストール
最後に次のコマンドで、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
OpenCVのインストール
続いて下記コマンドを実行して、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
OpenCVによりカメラの映像から画像を取得する方法
OpenCVをつかって画像を読み込む際には、「cv2.VideoCapture()」を使うことで取得できます。
このとき()内にはOpenCVで認識したカメラIDを指定する必要があります。
複数のカメラを接続している際には考慮する必要がありますが、カメラを1つしか接続してない場合は0を指定します。
ちなみに動画を読み込むときは、()内の引数に読み込みたい動画のパスを指定するとできます。
利用可能なカメラの種類
OpenCVではパソコンに内蔵されたカメラやUSBで接続されたWebカメラが利用可能です。
Raspberry Piの場合は設定が別途必要になりますが、カメラモジュールを使うことも可能です。
取得した画像を表示する方法
ここでは、取得した画像を表示するプログラムを解説します。
定義プログラム
取得した 画像を表示する際には、「cv2.VideoCapture()」から1フレームを読み込むために、以下の変数で定義をします。
この内、「frame」が取得した画像データを格納している変数になります。
cap = cv2.VideoCapture(0)
ret, frame = cap.read()
表示する場合
cv2.imshow("Frame", frame )
取得したフレームを表示ウィンドウでさせる場合は「cv2.imshow(“Frame”, frame )」を使用します。
1つ目の引数の「”Frame”」はウィンドウに表示されるタイトルです。
2つ目の引数の「frame」に関しては、フレームを取得できたかどうかを判別するための変数を格納しています。
万が一、カメラが接続されていないなどで画像を取得できなかった際の判断要素として、プログラム内でエラー処理を行うことが可能です。
実際に書いてみよう
それでは、実際に画像を取り込み表示してみましょう。
カメラの画像を取り込むサンプルプログラム
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を学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPythonコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、人工知能(AI)や機械学習の基礎を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!