[再現] FedoraにOpenCV-Pythonをインストールする(2)

このチュートリアルはFedora 18(64ビット)とFedora 19(32ビット)を対象としています。他のバージョンでは現在、他のバグを除外していません。

前書き

FedoraにOpenCV-Pythonをインストールする方法は2つあります:

1)Fedoraリポジトリで利用可能なビルド済みのバイナリ
からインストールます; 2)ソースコードからコンパイルします。

さらに、OpenCV-PythonにはNumpyライブラリが必要です。Matplotlibをインストールすることを強くお勧めします。もちろん、インストールはIPython(インタラクティブなPython端末)を介して行う必要があります。最初の方法でインストールしてみましょう。

ビルド済みバイナリのインストール

インストールをより便利にするために、ターミナルで次のコマンドをroot(システム管理者)として使用して、すべてのソフトウェアパッケージをインストールします。

 	view plaincopy to clipboardprint? 
 1. $ yum install numpy opencv *

先ほど紹介したIPythonを開き、Pythonターミナルにコードを入力します。

	view plaincopy to clipboardprint?
 1. >>> import cv2 as cv  
 2. >>> print( cv.__version__ )

キャリッジリターンと印刷の後にエラーが発生しなければ、インストールは成功しており、このインストール方法に問題がある可能性があります。

Yumリポジトリには、OpenCVの最新バージョンが常に含まれているとは限りません。たとえば、このチュートリアルの執筆時点では、yumライブラリには3.4.1が含まれており、最新のOpenCVバージョンは4.2です。Python APIの場合、最新バージョンには常により良いサポートが含まれています。また、使用するドライバー、ffmpeg、gstreamerソフトウェアパッケージなどによっては、カメラサポート、動画再生などに問題がある場合があります。

したがって、実際には、ソースコードからコンパイルするという別の方法がより効果的です。

ソースからコンパイル

ソースコードからのコンパイルは、最初は少し複雑に見えるかもしれませんが、一度成功すると、複雑なことは何もありません。

まず、いくつかの依存関係をインストールします。一部は必須、一部はオプションです。オプションの依存関係は、必要がない場合はスキップできます。

必須の依存関係:

まず、CMakeを構成してインストールし、GCCを使用してコンパイルし、Python-develとNumpyでPython拡張機能を作成する必要があります。

	view plaincopy to clipboardprint?

 1. yum install cmake   
 2. yum install python-devel numpy   
 3. yum install gcc gcc-c++

次に、GUI関数のGTKサポート、カメラサポート(libdc1394、v4l)、メディアサポート(ffmpeg、gstreamer)などが必要です。

	view plaincopy to clipboardprint?
 1. yum install gtk2-devel   
 2. yum install libdc1394-devel   
 3. yum install ffmpeg-devel   
 4. yum install gstreamer-plugins-base-devel

オプションの依存関係:

OpenCVには、画像形式(PNG、JPEG、JPEG2000、TIFF、WebPなど)のサポートファイルが付属しています。しかし、少し古いかもしれません。最新のライブラリを入手したい場合は、これらの形式の開発ファイルをインストールできます。

	view plaincopy to clipboardprint?
 1. yum install libpng-devel   
 2. yum install libjpeg-turbo-devel   
 3. yum install jasper-devel  
 4. yum install openexr-devel   
 5. yum installlibtiff-devel   
 6. yum install libwebp-devel

いくつかのOpenCV関数は、Intelのスレッドビルディングブロック(TBB)に対応しています。ただし、これを有効にする場合は、最初にTBBをインストールする必要があります。(また、CMakeを使用してインストールを構成する場合は、-D WITH_TBB = ONを設定することを忘れないでください。詳細は以下を参照してください。)

	view plaincopy to clipboardprint?
 1. yum install tbb-devel

OpenCVは別のEigenライブラリを使用して、数学演算を最適化します。したがって、システムにEigenがインストールされていれば、それを使用できます。(また、CMakeを使用してインストールを構成する場合は、WITH_EIGEN = ONに設定することを忘れないでください)

	view plaincopy to clipboardprint?
 1. yum install eigen3-devel

ドキュメントを作成する必要がある場合は、Doxygen(ドキュメント生成ツール)をインストールする必要があります。

	view plaincopy to clipboardprint?
 1. yum install doxygen

OpenCVをダウンロード

次に、OpenCVのダウンロードを開始します。

1. 最新バージョンのOpenCV をsourceforge Webサイト(http://sourceforge.net/projects/opencvlibrary/)からダウンロードします次に、フォルダを解凍します。

2. OpenCVのgithubリポジトリから最新のソースコードをダウンロードします。これを行うには、最初にGitをインストールする必要があります。

	view plaincopy to clipboardprint?
 1. yum install git   
 2. git clone https://github.com/opencv/opencv.git

ホームディレクトリにOpenCVフォルダーが作成されます。コピーにはしばらく時間がかかります。

ターミナルウィンドウを開き、ダウンロードしたOpenCVフォルダーに移動します。新しいビルドフォルダーを作成し、そこに移動します。

	view plaincopy to clipboardprint?
 1. mkdir build   
 2. cd build

構成とインストール

必要な依存関係がすべてインストールされたので、OpenCVをインストールしましょう。もちろん、CMakeを使用してインストールを構成する必要があります。インストールするモジュール、インストールパス、使用するその他のライブラリ、ドキュメントやサンプルをコンパイルするかどうかなどを指定します。次のコマンドは通常、構成に使用されます(ビルドフォルダーから実行されます)

	view plaincopy to clipboardprint?
 1. cmake -D CMAKE_BUILD_TYPE = RELEASE -D CMAKE_INSTALL_PREFIX = / usr
    / local ..

ビルドタイプを「リリースモード」に指定し、インストールパスは/ usr / localです。各オプションの前に-Dをマークし、最後の記号を観察します。要するに、これはフォーマットです:

	view plaincopy to clipboardprint?
 1. cmake [-D <flag>] [-D <flag>] ..

フラグはいくつでも指定できますが、各フラグの前には-Dを付ける必要があります。

このチュートリアルでは、OpenCVをTBBおよびEigenサポートとともにインストールします。ドキュメントも作成しましたが、パフォーマンステストとビルド例は含まれていません。また、GPU関連のモジュールを無効にします(OpenCV-Pythonを使用しているため、GPU関連のモジュールは必要ありません。これにより時間が節約されます)。

1. TBBおよびEigenサポートを有効にします。

	view plaincopy to clipboardprint?
 1. cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..

2.ドキュメントを有効にし、テストと例を無効にします。

	view plaincopy to clipboardprint?
 2. Cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D
    BUILD_EXAMPLES=OFF ..

3. GPU関連のモジュールをすべて無効にします。

	view plaincopy to clipboardprint?
 3. cmake -D WITH_OPENCL=OFF -D BUILD_opencv_gpu=OFF -D
 4. BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D
 5. BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D
 6. BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D
 7. BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D
 8. BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF ..

4.インストールパスとビルドタイプを設定します。

	view plaincopy to clipboardprint?
 1. Cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local
    ..

cmakeステートメントを入力するたびに、結果の構成設定が出力されます。最終的なセットアップでは、必ず以下のフィールドに入力してください(以下は、私が取得したいくつかの重要な構成です)。これらのフィールドもシステムで適切に入力する必要があります。そうしないと、いくつかの問題が発生します。したがって、上記の手順を正しく実行したかどうかを確認する必要があります。

	view plaincopy to clipboardprint?
 1. ...  
 2. --   GUI:  
 3. --     GTK+ 2.x:                    YES (ver 2.24.19)  
 4. --     GThread :                    YES (ver 2.36.3)  
 5. --   Video I/O:  
 6. --     DC1394 2.x:                  YES (ver 2.2.0)  
 7. --     FFMPEG:                      YES  
 8. --       codec:                     YES (ver 54.92.100)  
 9. --       format:                    YES (ver 54.63.104)  
 10. --       util:                      YES (ver 52.18.100)  
 11. --       swscale:                   YES (ver 2.2.100)  
 12. --       gentoo-style:              YES  
 13. --     GStreamer:  
 14. --       base:                      YES (ver 0.10.36)  
 15. --       video:                     YES (ver 0.10.36)  
 16. --       app:                       YES (ver 0.10.36)  
 17. --       riff:                      YES (ver 0.10.36)  
 18. --       pbutils:                   YES (ver 0.10.36)  
 19. --     V4L/V4L2:                    Using libv4l (ver 1.0.0)  
 20. --   Other third-party libraries:  
 21. --     Use Eigen:                   YES (ver 3.1.4)  
 22. --     Use TBB:                     YES (ver 4.0 interface 6004)  
 23. --   Python:  
 24. --     Interpreter:                 /usr/bin/python2 (ver 2.7.5)  
 25. --     Libraries:                   /lib/libpython2.7.so (ver 2.7.5)  
 26. --     numpy:                       /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)  
 27. --     packages path:               lib/python2.7/site-packages   
 28. ...

ここで、makeコマンドを使用してファイルをビルドし、make installコマンドを使用してインストールします。makeinstallは引き続きroot(システム管理者)として実行されます。

	view plaincopy to clipboardprint?
 1. make   
 2. su   
 3. make install

インストールが終わりました。すべてのファイルは/ usr / local /フォルダーにインストールされます。しかし、それを使用するには、PythonがOpenCVモジュールを見つけることができる必要があります。

1.モジュールをPythonパスの任意のフォルダーに移動します。Pythonターミナルでimport sys; print(sys.path)と入力すると、Pythonパスを見つけることができます。多くの場所を印刷します。/usr/local/lib/python2.7/site-packages/cv2.soをこのフォルダーのいずれかに移動します。例えば、

sumv / usr / local / lib / python2.7 / site-packages / cv2.so / usr / lib / python2.7 / site-packages

ただし、OpenCVをインストールするたびにこれを行う必要があります。

2. /usr/local/lib/python2.7/site-packagesをPYTHON_PATHに追加します。一度だけ実行する必要があります。/.bashrcを開いて次の行を追加し、ログアウトして戻ります。

	view plaincopy to clipboardprint?
 1. export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

この時点で、OpenCVのインストールは完了です。ターミナルを開いてみてください:

	view plaincopy to clipboardprint?
 1. import cv2 as cv。

考えられる問題

(1)makeがopencvをコンパイルするとエラーが発生することがよくあります。

	view plaincopy to clipboardprint?
 1. Linking CXX executable ../../bin/opencv_perf_core /lib/libEGL.so.1: undefined reference to `wl_display_dispatch_queue_pending' collect2: error: ld returned 1 exit status make[2]: * [bin/opencv_perf_core] Error 1 make[1]: *[modules/core/CMakeFiles/opencv_perf_core.dir/all] Error 2  
 2.
 3. make: * [all] Error 2

入る:

	view plaincopy to clipboardprint?
 1. yum update libwayland*

その後、もう一度やり直します。

(2)インストール後のテストが可能

cd〜/ opencv-3.4.1次の問題が発生しました:

	view plaincopy to clipboardprint?
 1. Package opencv was not found in the pkg-config search path.  
 2. Perhaps you should add the directory containing `opencv.pc'   
 3. to thePKG_CONFIG_PATH environment variable   
 4. No package 'opencv' found

解決策は次のとおりです。

cp /usr/local/lib/pkgconfig/opencv.pc / usr / lib / pkgconfig

それでも解決できない場合、考えられる理由は、opencvのコンパイルとインストールおよび環境変数のエクスポート時にroot権限が使用され、プログラムがここで通常のユーザーとして呼び出されるため、関連するファイルが見つからないためです。

〜/ .bash_profileの最後に追加:

	view plaincopy to clipboardprint?
 1. PKG_CONFIG_PATH=/usr/local/lib/pkgconfig   
 2. export PKG_CONFIG_PATH

システムに再度ログインし、プログラムをコンパイルして成功します。
その後、FredoraにOpenCV-Pythonをインストールすることで基本的に完了です。
記事の概要ページを確認してくださいhttps://blog.csdn.net/weixin_44237705/article/details/107864965
openvinoの技術情報はグループで交換できます〜
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_44237705/article/details/107905064