ubuntu之opencv

opencv

参考:OpenCV各版本差异与演化,从1.x到4.0
OpenCV中文官方文档

install

# download opencv
cd ~/
git clone https://github.com/opencv/opencv.git
cd opencv
git clone https://github.com/opencv/opencv_contrib.git

mkdir build
cd build

# compiling release版
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D OPENCV_GENERATE_PKGCONFIG=ON ..
# compiling debug版
cmake -D CMAKE_BUILD_TYPE=Debug -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D OPENCV_GENERATE_PKGCONFIG=ON ..
# OpenCV4以上版本默认不使用pkg-config,该编译选项开启生成opencv.pc文件,支持pkg-config功能。

# Install the compiled library, perhaps to install the library to the system directory
sudo make -j32  #-j32表示32个线程并行编译
sudo make install

#可选步骤,推荐使用,免去同时使用多个版本的opencv之间相互影响
cp -rf /usr/local/include/opencv4 .

#更新pkg-config
sudo ldconfig
# Verification
pkg-config --modversion opencv4

python 
>>> import cv2
>>> cv2.__version__
'4.5.4-dev'
>>> exit()

# 卸载
# 删掉opencv4.conf文件,再在你编译的文件夹(我的是release)下运行sudo make uinstall即可。


其它选项GPU加速

编译支持英伟达GPU加速的OpenCV:
cmake \
	-D CMAKE_BUILD_TYPE=RELEASE \
        -D OPENCV_GENERATE_PKGCONFIG=ON \
	-D CMAKE_INSTALL_PREFIX=/usr/local \
	-D OPENCV_EXTRA_MODULES_PATH= /路径/opencv_contrib/modules \
	-D CUDA_CUDA_LIBRARY=/usr/local/cuda/lib64/stubs/libcuda.so \
	-D CUDA_ARCH_BIN=xx 这个需要去英伟达官网查询 \
	-D CUDA_ARCH_PTX="" \
	-D WITH_CUDA=ON \
	-D WITH_TBB=ON \
	-D BUILD_NEW_PYTHON_SUPPORT=ON \
	-D WITH_V4L=ON \
	-D INSTALL_C_EXAMPLES=ON \
	-D INSTALL_PYTHON_EXAMPLES=ON \
	-D BUILD_EXAMPLES=ON \
	-D WITH_QT=ON \
	-D WITH_OPENGL=ON \
	-D ENABLE_FAST_MATH=1 \
	-D CUDA_FAST_MATH=1 \
	-D WITH_CUBLAS=1 \
	-D WITH_NVCUVID=ON \
	-D BUILD_opencv_cudacodec=OFF ..
#OpenCV4默认不生成.pc文件,OPENCV_GENERATE_PKGCONFIG=ON才会生成。其余就是CUDA的开启配置了。

uninstall

# 首先要找到当初安装opencv的build目录,进入该build目录执行卸载操作
sudo make uninstall
cd  ..
rm -r build
#执行sudo make uninstall 报了错,暂时没有管它,直接删除了build安装目录。

# 清理/usr中所有opencv相关项
rm -r /usr/local/include/opencv2 
rm -r /usr/local/include/opencv 
rm -r /usr/include/opencv 
rm -r /usr/include/opencv2 
rm -r /usr/local/share/opencv 
rm -r /usr/local/share/OpenCV 
rm -r /usr/share/opencv 
rm -r /usr/share/OpenCV 
rm -r /usr/local/bin/opencv*
rm -r /usr/local/lib/libopencv*
# 上述文件夹在实际中有部分找不到。
$  cd /usr
$  find . -name "*opencv*" | xargs sudo rm -rf

# 移除python相关
$  apt-get remove-doc opencv-data python-opencv

# 检查opencv是否卸载干净
pkg-config opencv --libs
pkg-config opencv --modversion
# 如果是apt install方式,需要如下方式卸载干净
sudo apt-get autoremove opencv-doc opencv-data libopencv-dev libopencv2.4-java libopencv2.4-jni python-opencv libopencv-core2.4 libopencv-gpu2.4 libopencv-ts2.4 libopencv-photo2.4 libopencv-contrib2.4 libopencv-imgproc2.4 libopencv-superres2.4 libopencv-stitching2.4 libopencv-ocl2.4 libopencv-legacy2.4 libopencv-ml2.4 libopencv-video2.4 libopencv-videostab2.4 libopencv-objdetect2.4 libopencv-calib3d2.4

sudo ldconfig

libopencv using

# terminate check
pkg-config --modversion opencv4

makefile文件中如下调用,此方法可以正常调用opencv,但是单步调试时不能看到opencv源码

INCLUDES +=  $(shell  pkg-config --cflags opencv4)
LIBS = $(shell  pkg-config --libs opencv4)

推荐保留build文件夹,可以单步调试时阅读opencv源码,按照如下方法配置opencv的makefile

INC_PATH += -I/home/xxx/opencv/build/opencv4
LIB_PATH := -L/usr/local/lib
LIB_PATH += -L/home/xxx/opencv/build/lib

LIBS := -lm
LIBS += -lopencv_gapi -lopencv_stitching -lopencv_aruco -lopencv_barcode -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dnn_superres -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hfs -lopencv_img_hash -lopencv_intensity_transform -lopencv_line_descriptor -lopencv_mcc -lopencv_quality -lopencv_rapid -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_superres -lopencv_optflow -lopencv_surface_matching -lopencv_tracking -lopencv_highgui -lopencv_datasets -lopencv_text -lopencv_plot -lopencv_videostab -lopencv_videoio -lopencv_wechat_qrcode -lopencv_xfeatures2d -lopencv_shape -lopencv_ml -lopencv_ximgproc -lopencv_video -lopencv_xobjdetect -lopencv_objdetect -lopencv_calib3d -lopencv_imgcodecs -lopencv_features2d -lopencv_dnn -lopencv_flann -lopencv_xphoto -lopencv_photo -lopencv_imgproc -lopencv_core

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿尔发go

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值