安装依赖环境
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
首先指定版本号和CPU核数
export OPENCV_VERSION=4.6.0
export NUM_JOBS=8
下载并解压
wget -O opencv.zip https://hub.nuaa.cf/opencv/opencv/archive/${OPENCV_VERSION}.zip && \
unzip opencv.zip && \
mkdir build && cd build
编译和安装
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local/opencv${OPENCV_VERSION} \
-DBUILD_TIFF=ON \
-DOPENCV_GENERATE_PKGCONFIG=ON \
../opencv-${OPENCV_VERSION}
sudo make install -j${NUM_JOBS}
PS:
- CMAKE_INSTALL_PREFIX 是opencv的安装地址 默认安装在 usr/local
- CMAKE_BUILD_TYPE 是opencv安装的版本,Release和Debug两种可选,默认安装Release
- OPENCV_GENERATE_PKGCONFIG 强烈建议开启这个 设置为ON OPENCV_GENERATE_PKGCONFIG 因为opencv4默认不生成.pc文件,所以加上这句用于生成opencv4.pc文件,支持pkg-config功能。opencv4版本及以上 这里用ON
环境配置
修改etc/bash.bashrc
我们之前安装的时候 OPENCV_GENERATE_PKGCONFIG=ON 所以在/usr/local/lib/pkgconfig下生成了opencv4.pc文件,里面记录了OpenCV头文件、库文件的路經。需要进行如下配置:
sudo gedit /etc/bash.bashrc
#文件末尾添加以下内容 并保存
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
#文件末尾添加以下内容 并保存
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
修改动态库
#打开下列文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
# 添加lib路經 在 末尾 保存退出
/usr/local/lib
# 更新
sudo ldconfig
检查安装情况
#终端输入以下两命令,显示正常则安装成功
pkg-config --modversion opencv4 #查看版本号
pkg-config --libs opencv4 #查看libs库
可能存在的问题
…/…/lib/libopencv_imgcodecs.so.5.0.0: undefined reference to `TIFFReadRGBAStrip@LIBTIFF_4.0’
cmake选项中加上:BUILD_TIFF=ON
将anconda里面的libtiff的so文件移除掉了
sudo rm /home/ztyf/anconda3/lib/libtiff.so*
解决libpangoft2-1.0.so.0:对‘pango_font_get_hb_font‘未定义的引用
locate libpangoft2-1.0.so.0
选择/usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0,将其拷贝到报错的路径完全解决。
例如
cp /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 /home/nvidia/anaconda3/lib/
Ubuntu下编译opencv cuda版本//lib/x86_64-linux-gnu/libblkid.so.1 未定义‘uuid_unparse@UUID_1.0‘
sudo rm /home/xing/anaconda3/lib/libuuid.so.1
sudo ln -s /lib/i386-linux-gnu/libuuid.so.1 /home/xing/anaconda3/lib/libuuid.so.1
之后重新cmake; sudo make -j8; sudo make install;