一、准備
在安裝opencv庫之前,需要預先安裝一些必要的依賴項:
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
如果沒有安裝這些依賴項,會出現opencv庫不能正常運行的狀況!
二、配置opencv
可以查看:Linux下安裝OpenCV4(適用於Ubuntu等) - 簡書 (jianshu.com)
但是opencv4有可能不能與libtorch同時運行,所以建議下載opencv3的版本
下載好opencv3后,對其進行解壓,並創建子文件夾release。在終端輸入以下命令:
cmake -DCMAKE_BUILD_TYPE=Release \ -DOPENCV_GENERATE_PKGCONFIG=ON \ -DCMAKE_INSTALL_PREFIX=/usr/local ..
接着make一下:
make -j7
sudo make install
此后,需要把opencv寫入系統的環境變量中,使他隨時可以調用:
cd /etc/ld.so.conf.d/ sudo touch opencv4.conf sudo sh -c 'echo "/usr/local/lib" > opencv4.conf'
最后,更新一下:
sudo ldconfig
三、配置libtorch
可以查看:(49條消息) Ubuntu18.04 配置 LibTorch_不忘初心~-CSDN博客_ubuntu安裝libtorch
只需要對其進行解壓即可,下載的libtorch一定要注意cuda版本。
四、編寫項目的cmakelist
可以查看:Opencv+LibTorch安裝 - shandianchengzi - 博客園 (cnblogs.com)
cmake_minimum_required(VERSION 2.8 FATAL_ERROR) project(dtp) find_package(OpenCV REQUIRED) message(STATUS "OpenCV library status:") message(STATUS " version: ${OpenCV_VERSION}") message(STATUS " libraries: ${OpenCV_LIBS}") message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}") find_package(Torch REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS}) include_directories(${TORCH_INCLUDE_DIRS}) add_executable(dtp cuda_yoloV5_43_car_lane.cpp) target_link_libraries(dtp "${TORCH_LIBRARIES}" ${OpenCV_LIBS} ) set_property(TARGET dtp PROPERTY CXX_STANDARD 14)
cmake_minimum_required-表明了所要的cmake的最低版本。
project-命名項目名稱 我命名為dtp。
find_package-系統開始查找這些庫,通過findXXX.cmake文件或搜索DIR下的config.cmake文件。然后會為一些變量(如OpenCV_VERSION)賦值。
message-打印(並不必)
include_directories-將指定目錄添加到編譯器的頭文件搜索路徑。
add_executable-添加可執行文件,這個文件最好包含main函數。會生成可執行文件
add_library-添加可執行文件,之后會生成庫文件。需要注明關鍵字。
target_link_libraries-鏈接庫,需要注意順序。
set_property-為項目命名一個屬性。
使用命令cmake -DCMAKE_PREFIX_PATH=/xx/libtorch 指明libtorch的安裝位置,就可以開始編譯,否則找不到libtorch。
最后cmake .
cmake --build . --config開始編譯。
五、部分cmake命令解析
cd 移動至某一文件下。
cmake .. 使用cmakelist當前生成makefile文件,編譯。
make 以makefile文件為基礎構建程序 。
mkdir 建立一個子目錄
sudo 以系統管理者權限進行某項命令。
apt 用於在ubuntu、debain和相關Linux發行上安裝、更新、刪除和管理deb軟件包。