Opencv3.3(Linux)pythonにインストールされたピットのコンパイル
6029 ワード
コンパイルインストールOpenCVは绝対に人を狂わせることで、CMakeの多くのオプション、国内の卵の痛みのネットの速さ、本当に人にツッコミを入れる力がなくて、しかしcontribバッグを使うため、私は再び彼をコンパイルしなければなりません.
OpenCVのコンパイル
実はOpenCVのコンパイルは難しくありませんが、国内の卵の痛みのネット速度は本当に我慢できません.まずOpenCVをコンパイルした過程を簡単に説明します.
私のコンパイル環境はdeepin 15です
準備作業
まずaptで必要なライブラリをインストールします(ほとんどorzをインストールしましたが)
以下はオプションパッケージです
公式ドキュメントでは、関連するパラメータと必要な言語環境を多く見て、自分の具体的なニーズに応じて自分の必要なパッケージをインストールすることをお勧めします.
自分の作業ディレクトリを作成し、cdはcloneという2つのライブラリに入ります.
ここで注意しなければならないのはopencvとcontribが正しいかどうかでコンパイルに失敗するので、ここでcloneは最新の
Opencvの2つのライブラリはいずれもかなり大きいがgithubの速度はかなり遅く、codingを使用する方法がある.NetまたはOschinaをインポートしてcloneし、
私はここでCDNを変更することでアクセスが不安定な問題を解決します.
CMAKEを使用してソースコードからプロジェクトを構築
1.私たちがコンパイルしたopencvライブラリを格納するために一時ディレクトリを作成します.勝手に名前を付けることができます.私はこのディレクトリを表すために使用します.
2.構築プロジェクト
ここでは、最も基本的な2つのパラメータ、コンパイルタイプ、インストールディレクトリを列挙します.
ここではcmake-guiを使用して構築することをお勧めします.彼はオプションのパラメータを明確にリストし、自分のニーズに応じて選択すればいいです.
cmake-guiのインストール
ここではcmake-guiの使用についてはあまり説明しませんが、私が使用しているパラメータをリストします.
少し説明しますが、以前pytorchなどの深度ラーニングライブラリを使用していたときにCUDAをインストールしたことがありますが、cmakeの自動構成に問題があったのでCUDAを閉じてデフォルトのOPENCLを使用しました
LIBV 4 Lは構築時にvideoioが見つからないためである.hこのライブラリですので、次のコマンドで解決できます.
まだ解決できない場合は
3.python関連パラメータ
pythonライブラリのインストールパスを指定するには、ここでパラメータを指定します.
一人一人の前の環境が違うので、環境を補うかもしれません.
4.そして楽しい配置を待つことができます...頭!!!
国内の环境は本当にとても彼の卵が痛いです!!!!!!ちょうど大会の時、私の梯子は会議の前日に突然すべて赤くなって、更に卵を痛めさせます
IPPICVは私の卵をかわいがるライブラリで、直接ダウンロードして入れるしかありません.ああ、私のCMAKE配置はダウンロードしたライブラリをコンパイルディレクトリに置きます.Cacheフォルダの中に、下に降りてファイル名をhash入れておけばいいのですが、このライブラリでダウンロードしたURLはhttps://raw.githubusercontent.com/opencv/opencv_3rdparty/a62e20676a60ee0ad6581e217fe7e4bada3b95db/ippicv/ippicv_2017u2_lnx_intel64_20170418.tgz
実践関係は、自分の実際の状況を変更する必要があります.この在庫の目次はこちらですhttps://github.com/opencv/opencv_3rdpartyデフォルトのプライマリブランチはreadmeのみで、opencvに対応するブランチのダウンロードにブランチを変更する必要があります.
この文章を参考にした
Opencvディレクトリで上記のコマンドを行えばよい
ffmpegがダウンロードできない場合があるかもしれませんが、apt大法が一般的です
基本的に解決できる
コンパイルとインストール
コンパイル
私はここで何の問題もありません.
インストール
anacondaインストールcv 2
anacondaがcv 2をインストールするときに不思議なエラーが発生し、コマンドラインの呼び出しが完璧で、jupyterを使用するときに問題が発生しました.
インストール
実はデフォルトでmake installはcv 2をpythonディレクトリにインストールしましたが、私がインストールするのはanacondaのpythonです.ちょうどanacondaの環境変数です.私はシステムのpython環境変数の下に置いています.普段はsource activate rootを使っていますが、自然make installはインストールしていません.
ここではmakeのステップで生成されたopencvのダイナミックリンクファイルをコピーできます.
図のようにanacondaのデフォルトpythonのライブラリディレクトリにコピーします.
その後、デフォルトのpythonを使用してcvを呼び出すのは全く問題ありませんが、不思議なことにjupyter notebookで奇妙な問題が発生しました.
jupyter notebook import Error
jupyterがcv 2を呼び出したときにimport errorというエラーが発生しました.
多分上のようなもので、当時の新聞のスクリーンショットは保存されていません
GLIBCXXの問題はlibgccリンクがgccバージョンの更新後にリンクが更新されていない可能性があることです.一般的にanacondaは万能文法を使用しています.
しかし今回は解決しなかったので、
次の文を使用してcondaのデフォルトのlibgccのリンクをチェックします.
または
対応GLIBCXXがない場合はソフトリンクでリンク
自信満々にjupyterを開いてimport cv 2を使うと
現実は私にひどい耳光を与えて、import error、これはとても気まずいです.いったいどうやって解決しますか?
核の変更
pythonのコマンドラインで実行できますが、jupyterは実行できません.jupyterコアの設定に問題がある可能性がありますか?
異なる環境下でkenelsが存在するディレクトリは異なる可能性があり、以下は公式に提供される可能性のある位置である.
私のkernelディレクトリは
変更前
変更後
jupyter notebookを開いてimport cv 2を実行
すべて正常です.Opencvのコンパイルインストールがやっと終わりました
後記
なぜ環境変数のpythonを絶対パスに変更したのか分からないがok(anacondaのpythonが環境変数の順序がシステムの後ろにあるせいかもしれない)、彼にかかわらず、私の特コードはopencvを配置したくない.
GFW真(調和調和)
転載先:https://www.cnblogs.com/lynsyklate/p/7719500.html
OpenCVのコンパイル
実はOpenCVのコンパイルは難しくありませんが、国内の卵の痛みのネット速度は本当に我慢できません.まずOpenCVをコンパイルした過程を簡単に説明します.
私のコンパイル環境はdeepin 15です
準備作業
まずaptで必要なライブラリをインストールします(ほとんどorzをインストールしましたが)
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
以下はオプションパッケージです
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
公式ドキュメントでは、関連するパラメータと必要な言語環境を多く見て、自分の具体的なニーズに応じて自分の必要なパッケージをインストールすることをお勧めします.
自分の作業ディレクトリを作成し、cdはcloneという2つのライブラリに入ります.
cd ~/
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
ここで注意しなければならないのはopencvとcontribが正しいかどうかでコンパイルに失敗するので、ここでcloneは最新の
Opencvの2つのライブラリはいずれもかなり大きいがgithubの速度はかなり遅く、codingを使用する方法がある.NetまたはOschinaをインポートしてcloneし、
私はここでCDNを変更することでアクセスが不安定な問題を解決します.
CMAKEを使用してソースコードからプロジェクトを構築
1.私たちがコンパイルしたopencvライブラリを格納するために一時ディレクトリを作成します.勝手に名前を付けることができます.私はこのディレクトリを表すために使用します.
cd ~/opencv
mkdir build
cd build
2.構築プロジェクト
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
ここでは、最も基本的な2つのパラメータ、コンパイルタイプ、インストールディレクトリを列挙します.
ここではcmake-guiを使用して構築することをお勧めします.彼はオプションのパラメータを明確にリストし、自分のニーズに応じて選択すればいいです.
cmake-guiのインストール
sudo apt-get install cmake-qt-gui
cmake-gui
ここではcmake-guiの使用についてはあまり説明しませんが、私が使用しているパラメータをリストします.
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES=../../opencv_contrib/modules \
-D WITH_LIBV4L=ON \
-D WITH_CUDA=OFF \
..
少し説明しますが、以前pytorchなどの深度ラーニングライブラリを使用していたときにCUDAをインストールしたことがありますが、cmakeの自動構成に問題があったのでCUDAを閉じてデフォルトのOPENCLを使用しました
LIBV 4 Lは構築時にvideoioが見つからないためである.hこのライブラリですので、次のコマンドで解決できます.
sudo apt-get install libv4l-dev
まだ解決できない場合は
WITH_V4L=OFF
というパラメータを加えることができます3.python関連パラメータ
pythonライブラリのインストールパスを指定するには、ここでパラメータを指定します.
PYTHON2(3)_EXECUTABLE = #python
PYTHON_INCLUDE_DIR = /usr/include/python#python
PYTHON_INCLUDE_DIR2 = /usr/include/x86_64-linux-gnu/python
PYTHON_LIBRARY = /usr/lib/x86_64-linux-gnu/libpython.so #python
PYTHON2(3)_NUMPY_INCLUDE_DIRS = /usr/lib/python/dist-packages/numpy/core/include/ #NUMPY
一人一人の前の環境が違うので、環境を補うかもしれません.
sudo apt-get install python-numpy
sudo apt-get install python3-numpy
sudo apt-get install libpython-dev libpython3-dev
4.そして楽しい配置を待つことができます...頭!!!
国内の环境は本当にとても彼の卵が痛いです!!!!!!ちょうど大会の時、私の梯子は会議の前日に突然すべて赤くなって、更に卵を痛めさせます
IPPICVは私の卵をかわいがるライブラリで、直接ダウンロードして入れるしかありません.ああ、私のCMAKE配置はダウンロードしたライブラリをコンパイルディレクトリに置きます.Cacheフォルダの中に、下に降りてファイル名をhash入れておけばいいのですが、このライブラリでダウンロードしたURLはhttps://raw.githubusercontent.com/opencv/opencv_3rdparty/a62e20676a60ee0ad6581e217fe7e4bada3b95db/ippicv/ippicv_2017u2_lnx_intel64_20170418.tgz
実践関係は、自分の実際の状況を変更する必要があります.この在庫の目次はこちらですhttps://github.com/opencv/opencv_3rdpartyデフォルトのプライマリブランチはreadmeのみで、opencvに対応するブランチのダウンロードにブランチを変更する必要があります.
この文章を参考にした
ipp_file=ippicv_2017u2_lnx_intel64_20170418.tgz &&
ipp_hash=$(md5sum ../$ipp_file | cut -d" " -f1) &&
ipp_dir=.cache/ippicv &&
mkdir -p $ipp_dir &&
cp ../$ipp_file $ipp_dir/$ipp_hash-$ipp_file
Opencvディレクトリで上記のコマンドを行えばよい
ffmpegがダウンロードできない場合があるかもしれませんが、apt大法が一般的です
sudo apt-get install ffmpeg-dev
基本的に解決できる
コンパイルとインストール
コンパイル
私はここで何の問題もありません.
make -j4
インストール
sudo make install
anacondaインストールcv 2
anacondaがcv 2をインストールするときに不思議なエラーが発生し、コマンドラインの呼び出しが完璧で、jupyterを使用するときに問題が発生しました.
インストール
実はデフォルトでmake installはcv 2をpythonディレクトリにインストールしましたが、私がインストールするのはanacondaのpythonです.ちょうどanacondaの環境変数です.私はシステムのpython環境変数の下に置いています.普段はsource activate rootを使っていますが、自然make installはインストールしていません.
ここではmakeのステップで生成されたopencvのダイナミックリンクファイルをコピーできます.
図のようにanacondaのデフォルトpythonのライブラリディレクトリにコピーします.
cp cv2.cpython-35m-x86_64-linux-gnu.so ~/anaconda3/lib/python3.6/site-packages/cv.so
その後、デフォルトのpythonを使用してcvを呼び出すのは全く問題ありませんが、不思議なことにjupyter notebookで奇妙な問題が発生しました.
jupyter notebook import Error
jupyterがcv 2を呼び出したときにimport errorというエラーが発生しました.
Import error GLIBCXX_3.4.21 not found when importing cv2
多分上のようなもので、当時の新聞のスクリーンショットは保存されていません
GLIBCXXの問題はlibgccリンクがgccバージョンの更新後にリンクが更新されていない可能性があることです.一般的にanacondaは万能文法を使用しています.
conda install libgcc
しかし今回は解決しなかったので、
次の文を使用してcondaのデフォルトのlibgccのリンクをチェックします.
ldd anaconda3/lib/libstdgcc.so.6
または
strings anaconda3/lib/libstdgcc.so.6 | grep GLIBCXX
対応GLIBCXXがない場合はソフトリンクでリンク
cd anaconda3/lib/
mv libstdc++.so.6 libstdc++.so.6.old
ln -s /usr/lib64/libstdc++.so.6 libstdc++.so.6
自信満々にjupyterを開いてimport cv 2を使うと
現実は私にひどい耳光を与えて、import error、これはとても気まずいです.いったいどうやって解決しますか?
核の変更
pythonのコマンドラインで実行できますが、jupyterは実行できません.jupyterコアの設定に問題がある可能性がありますか?
異なる環境下でkenelsが存在するディレクトリは異なる可能性があり、以下は公式に提供される可能性のある位置である.
私のkernelディレクトリは
anaconda3/share/jupyter/kernels/
で、anaconda 3/share/jupyter/kernels/python 3ディレクトリの下のkenelを開きます.json編集変更前
変更後
jupyter notebookを開いてimport cv 2を実行
すべて正常です.Opencvのコンパイルインストールがやっと終わりました
後記
なぜ環境変数のpythonを絶対パスに変更したのか分からないがok(anacondaのpythonが環境変数の順序がシステムの後ろにあるせいかもしれない)、彼にかかわらず、私の特コードはopencvを配置したくない.
GFW真(調和調和)
転載先:https://www.cnblogs.com/lynsyklate/p/7719500.html