まず、私のコンピュータの情報を見せてください。
zhaocake@zhaocake-BoDE-WXX9 ~ uname -a
Linux zhaocake-BoDE-WXX9 5.19.0-46-generic #47~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Jun 21 15:35:31 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
ソースコードをダウンロードする
opencv-4.8.0.zip: https://codeload.github.com/opencv/opencv/zip/refs/tags/4.8.0
opencv-contrib-4.8.0.zip: https://codeload.github.com/opencv/opencv_contrib/zip/refs/tags/4.8.0
依存関係や cmake ツールなどをインストールします。
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
後で、拡張ライブラリをインストールするときに一部の依存関係がインストールされていないことがわかりました。
sudo apt-get install libgtk-3-dev
sudo apt-get -y install libgstreamer-plugins-base1.0-dev
sudo apt-get -y install libgstreamer1.0-dev
どのような依存関係が欠落しているかについては、cmake の出力を読むことができます。cmake コマンドは後でリストされます。
解凍してコンパイルの準備が整いました
ダウンロードしたソース コードを解凍し、contrib ソース コード フォルダーを opencv フォルダーに移動します。
この opencv-4.8.0 フォルダーの下に、コンパイルするフォルダーを入力します。
mkdir build && cd build
注: opencv の他の言語インターフェイスをインストールしたくない場合は、次のコマンドを自分で参照できます。(目的を達成するために CMakeList.txt ファイルを変更することもできます)
コンパイル タイプを指定し、コンパイルされたライブラリを/ usr/local/にインストールします。
sudo cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.8.0/modules -D BUILD_JAVA=OFF -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=OFF CMAKE_INSTALL_PREFIX=/usr/local ..
このとき、多くの情報が出力され、makeが生成されます。
コンパイル
sudo make -j8
sudo make はシングルスレッドです。高速化するスレッドの数を指定するには、-j を使用します。一般的に、スレッド数は CPU コア数の 2 倍と見なすことができます。
しばらくお待ちください。待機時間はスレッドの数と CPU のパフォーマンスに関係します。
/usr/local にインストールする
sudo make install
すると、ライブラリがターゲットディレクトリにインストールされたことがわかります。
構成インポートパス
sudo gedit /etc/ld.so.conf
開いたファイルの後に/usr/local/libを追加し、次のコマンドで更新された構成をロードします。
sudo ldconfig
構成環境
rcファイルを変更します。私は zsh のシェルなので、.zshrc です。
ほとんどの場合:
vim ~/.bashrc
ファイルの最後に追加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
コマンドを使用して、opencv のインストールを表示します。
pkg-config opencv --modversion
以下のような状況が発生します。
解決するには:
cd /usr/local/lib
sudo mkdir pkgconfig # 如果已经存在则不需要再创建
cd pkgconfig
sudo vim opencv.pc
次の情報を書き込みます。
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: opencv
Description: The opencv library
Version:4.8.0
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
~
~/.bashrc を再度変更し、以下を追加します。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
注: rc ファイルを更新することを忘れないでください。
最終確認
ディレクトリ内で、ディレクトリopencv/samples/cpp/example_cmakeをコンパイルします。
次のコマンドを実行して確認します。
cmake .
make
./opencv_example
クリオンの場合:
エラーは報告されません。ただし、現時点では opencv2/opencv.hpp を直接インポートすることはできないため、ソフト リンクを追加する必要もあります。
sudo ln -s /usr/local/include/opencv4/opencv2 /usr/include
扱いを誤ってエラーが発生した場合は、他の記事を参照してこのソフト リンクを削除し、独自のディレクトリにリンクすることができます。
Linux でソフト リンクをキャンセルする方法_ln ソフト リンクをキャンセルする_dufufd のブログ-CSDN ブログ
添付ファイル: contrib のインストールが成功したことを確認してください
もちろん、インストールが実行されているかどうかに基づいてインストールが成功したかどうかを判断するコードを作成することもできます。