私の完全に機能するソリューションであるOpenCV-Python-OpenCV-PythonパッケージをAnaconda(Windows)にインストールする方法をまとめました。それでも、この投稿に重要な部分をコピーして貼り付けました。
執筆時点では、Windows 8.1、64ビットマシン、Anaconda / Python 2.xを使用していました。(下記の注を参照してください-これはWindows 10でも機能し、おそらくPython 3.xでも機能します)。
注1:@great_raisin(ありがとう)のコメントセクションで言及されているように、このソリューションはWindows 10でも機能するようです。
注2:これはおそらくAnaconda / Python 3.xでも機能します。Windows 10およびAnaconda / Python 3.xを使用していて、このソリューションが機能する場合は、以下にコメントを追加してください。ありがとう!(更新:コメント「Windows 10での作業」からの注記)
注3:Python 2.xまたは3.xのどちらを使用しているかにprint
応じて、コードスニペットでステートメントを適宜調整します。つまり、Python 3.xではそうなりprint("hello")
、Python 2.xではそうなりますprint "hello"
。
TL; DR
Anaconda(およびSpyder IDE)でOpenCVを完全に使用するには、以下を行う必要があります。
- 公式OpenCVサイトからOpenCVパッケージをダウンロード
- をコピーし
cv2.pyd
て、Anacondaのsite-packagesディレクトリに貼り付けます。
- AnacondaがFFMPEGユーティリティの検索場所を認識できるように、ユーザー環境変数を設定します。
- OpenCVとFFMPEGが機能していることを確認するために、いくつかのテストを行います。
(詳細な手順については、以下をお読みください...)
前提条件
Anacondaをインストールする
Anacondaは、基本的にうまくパッケージ化されたPython IDEであり、NumPy、Pandas、IPython Notebookなどの多数の便利なパッケージが同梱されています。科学コミュニティのあらゆる場所で推奨されているようです。アナコンダをチェックをて、インストールしてください。
AnacondaへのOpenCV-Pythonのインストール
注意:私は当初、binstar.org OpenCVパッケージのインストールを試してみました。ただし、その方法にはFFMPEGコーデックが含まれていません。つまり、OpenCVを使用できる可能性がありますが、ビデオを処理することはできません。
次の説明は、このOpenCV YouTubeビデオに触発されたものです。これまでのところ、64ビットマシンとWindows 8.1の両方のデスクトップとラップトップの両方で機能しています。
OpenCVパッケージをダウンロード
まず、公式のOpenCVサイトにアクセスして、完全なOpenCVパッケージをダウンロードします。お好きなバージョンを選択してください(2.xまたは3.x)。私はPython 2.xとOpenCV 3.xを使用しています。これは主に、OpenCV-Pythonチュートリアルの方法です。を使用しています。セットアップ/ベースとなっているためです。
私の場合、パッケージ(基本的にはフォルダー)を直接Cドライブに抽出しました(C:\opencv
)。
cv2.pydファイルをコピーして貼り付けます
Anaconda Site-packagesディレクトリ(C:\Users\Johnny\Anaconda\Lib\site-packages
私の場合など)には、インポートできるPythonパッケージが含まれています。私たちの目標は、cv2.pyd
ファイルをこのディレクトリにコピーして貼り付けることです(import cv2
Pythonコードでを使用できるようにするためです)。
これを行うには、cv2.pyd
ファイルをコピーします...
このOpenCVディレクトリーから(ご使用のマシンでは、最初の部分が少し異なる場合があります)。Python 3.xの場合は2.x
、3.x
それに応じてを変更するだけです。
# Python 2.7 and 32-bit machine:
C:\opencv\build\python\2.7\x84
# Python 2.7 and 64-bit machine:
C:\opencv\build\python\2.7\x64
このAnacondaディレクトリへ(最初の部分はマシンによって少し異なる場合があります):
C:\Users\Johnny\Anaconda\Lib\site-packages
このステップを実行した後import cv2
、Pythonコードで使用できるようになります。しかし、FFMPEG(ビデオコーデック)を機能させるには(ビデオの処理などを実行できるようにするため)、まだ少し作業が必要です。
環境変数を設定する
[マイコンピュータ](またはWindows 8.1では[このPC])を右クリック→ [ プロパティ ]を左クリック→[詳細]タブを左クリック→[環境変数...]ボタンを左クリック
OpenCVを指す新しいユーザー変数を追加します(32ビットシステムの場合はx86、64ビットシステムの場合はx64)。私は現在64ビットマシンを使用しています。
| 32-bit or 64 bit machine? | Variable | Value |
|---------------------------|--------------|--------------------------------------|
| 32-bit | `OPENCV_DIR` | `C:\opencv\build\x86\vc12` |
| 64-bit | `OPENCV_DIR` | `C:\opencv\build\x64\vc12` |
%OPENCV_DIR%\bin
ユーザー変数に追加しますPATH
。
たとえば、PATH
ユーザー変数は次のようになります...
前:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts
後:
C:\Users\Johnny\Anaconda;C:\Users\Johnny\Anaconda\Scripts;%OPENCV_DIR%\bin
これで完了です。FFMPEGを使用する準備ができました!
確認するためのテスト
これをAnacondaで(Spyder IDEを介して)実行できるかどうかをテストする必要があります。
- OpenCVパッケージをインポート
- FFMPEGユーティリティを使用(ビデオの読み取り/書き込み/処理)
テスト1:OpenCVをインポートできますか?
AnacondaがOpenCV-Pythonパッケージ(つまりcv2
)をインポートできるようになったことを確認するには、IPythonコンソールで次のコマンドを発行します。
import cv2
print cv2.__version__
パッケージcv2
がエラーなしで正常にインポートcv2
され、バージョンが印刷されれば、問題ありません。これがスナップショットです。
(ソース:mathalope.co.uk)
テスト2:FFMPEGコーデックを使用できますか?
サンプルinput_video.mp4
ビデオファイルをディレクトリに配置します。次のことが可能かどうかをテストします。
- この
.mp4
ビデオファイルを読んで、そして
- 新しいビデオファイルを書き出す(することができ
.avi
たり.mp4
など)
これを行うには、テストPythonコードが必要です。これを呼び出しますtest.py
。サンプルinput_video.mp4
ファイルと同じディレクトリに配置します。
これは次のようにtest.py
なります(ここでは、新しいバージョンコードと古いバージョンコードの両方を記載しています。どちらが機能するか、機能しないかをお知らせください!)。
(新しいバージョン...)
import cv2
cap = cv2.VideoCapture("input_video.mp4")
print cap.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter("output_video.avi", fourcc, 20.0, (640, 360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
(または古いバージョン...)
import cv2
cv2.VideoCapture("input_video.mp4")
print cv2.isOpened() # True = read video successfully. False - fail to read video.
fourcc = cv2.cv.CV_FOURCC(*'XVID')
out = cv2.VideoWriter("output_video.avi",fourcc, 20.0, (640,360))
print out.isOpened() # True = write out video successfully. False - fail to write out video.
cap.release()
out.release()
このテストは非常に重要です。ビデオファイルを処理する場合は、Anaconda / Spyder IDEがFFMPEG(ビデオコーデック)を使用できることを確認する必要があります。機能するまでに数日かかりました。しかし、私はそれがはるかに少ない時間で済むことを願っています!:)
注:Anaconda Spyder IDEを使用する際のもう1つの非常に重要なヒント。現在の作業ディレクトリ(CWD)を確認してください!!!
結論
Anaconda(およびSpyder IDE)でOpenCVを完全に使用するには、以下を行う必要があります。
- OpenCVの公式サイトからOpenCVパッケージをダウンロード
- をコピーし
cv2.pyd
て、Anacondaのsite-packagesディレクトリに貼り付けます。
- AnacondaがFFMPEGユーティリティの検索場所を認識できるように、ユーザー環境変数を設定します。
- OpenCVとFFMPEGが機能していることを確認するために、いくつかのテストを行います。
幸運を!