简介
在安装HyperLPR(C++)的过程中需要opencv+opencv_contrib。
1.1 安装包下载
注意 opencv与opencv-contrib的版本应该一致
opencv 下载opencv官网
opencv_contrib 下载github
百度云盘地址:
链接:/s/1H4a9wTdnL6uWZnwoWfWVrQ
提取码:qnbz
其中安装结果是,整个安装过程中,修改的opencv-3.4.6文件和安装产生结果
1.2安装依赖包
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libavresample-devsudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-devsudo apt install libxvidcore-dev x264 libx264-dev libfaac-dev libmp3lame-dev libtheora-devsudo apt install libfaac-dev libmp3lame-dev libvorbis-devsudo apt install libopencore-amrnb-dev libopencore-amrwb-dev
1.3 安装
首先解压文件
unzipopencv-3.4.6.zipunzipopencv_contrib-3.4.6.zip
将opencv_contrib-3.4.6移到opencv-3.4.6文件夹里面
cp -r opencv_contrib-3.4.6 opencv-3.4.6
编译和安装
cd opencv-3.4.6mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=~/opencv346/ -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-3.4.6/modules -D OPENCV_ENABLE_NONFREE=True ..
因为我需要将opencv安装在自己用户目录下,其中CMAKE_INSTALL_PREFIX表示安装地址,OPENCV_EXTRA_MODULES_PATH表示需要额外模块的地址。OPENCV_ENABLE_NONFREE=True,这句就是使用nonfree模块,包括sift等有专利权的模块。
make -jmake install
安装成功的话,如图所示
1.4 安装出现的问题
问题1.ippicv
CMake Warning at cmake/OpenCVDownload.cmake:193 (message):IPPICV: Download failed: 7;"Couldn't connect to server"For details please refer to the download log file:
因为网络原因无法下载完全ippicv__lnx_intel64_general_0723.tgz,需要将这个文件下载到本地,下载地址/opencv/opencv_3rdparty/tree/ippicv/master_0723/ippicv。将ippicv__lnx_intel64_general_0723.tgz放在了caffe用户目录下的download文件夹下。
将ippicv的http下载注释掉,然后指定一下ippcv的本地文件
vim ~/opencv-3.4.6/3rdparty/ippicv/ippicv.cmake
具体需要根据自己的路径进行修改
"file:///home/test/download/"
按照如图进行修改
问题2.face_landmark_model.dat
-- data: Download: face_landmark_model.dat-- =======================================================================Couldn't connect to server from the Internet.Perhaps direct connections are not allowed in the current network.To use proxy please check/specify these environment variables:- http_proxy/https_proxy- and/or HTTP_PROXY/HTTPS_PROXY
如上修改为本地地址
vim ~/opencv-3.4.6/opencv_contrib-3.4.6/modules/face/CMakeLists.txt
具体需要根据自己的路径进行修改
"file:///home/test/download/"
问题3.boostdesc等
/home/test/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/src/vgg.cpp:490:41: fatal error: vgg_generated_120.i: No such file or directorycompilation terminated./home/test/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/src/boostdesc.cpp:653:37: fatal error: boostdesc_bgm.i: No such file or directory
在make -j的时候会出现文件,只需将缺失的文件复制到如下路径就可以
cd ~/boostdesccp * ~/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/src
问题4.make -j时出现的问题
/usr/local/include/opencv2/xfeatures2d.hpp:965:92: error: ‘cv::FastFeatureDetector::DetectorType’ has not been declaredint threshold, bool nonmaxSuppression=true, cv::FastFeatureDetector::DetectorType type=FastFeatureDetector::TYPE_9_16);^/home/test/opencv-3.4.6/modules/stitching/src/matchers.cpp:54:20: error: ‘cv::xfeatures2d::SIFT’ has not been declaredusing xfeatures2d::SIFT;^/home/test/opencv-3.4.6/modules/stitching/src/matchers.cpp: In constructor ‘cv::detail::SiftFeaturesFinder::SiftFeaturesFinder()’:/home/test/opencv-3.4.6/modules/stitching/src/matchers.cpp:491:9: error: ‘SIFT’ was not declared in this scopePtr<SIFT> sift_ = SIFT::create();^/home/test/opencv-3.4.6/modules/stitching/src/matchers.cpp:491:13: error: template argument 1 is invalidPtr<SIFT> sift_ = SIFT::create();^
上面的原因都是没找到正确的xfeatures2d.hpp,在CMakeLists.txt添加该头文件路径就可以了
vim ~/opencv-3.4.6/CMakeLists.txt
添加
include_directories(~/opencv-3.4.6/opencv_contrib-3.4.6/modules/xfeatures2d/include)
如图所示
如果觉得《Ubuntu下安装opencv3.4.6+opencv_contrib》对你有帮助,请点赞、收藏,并留下你的观点哦!