失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Ubuntu下安装opencv3.4.6+opencv_contrib

Ubuntu下安装opencv3.4.6+opencv_contrib

时间:2020-07-22 08:03:03

相关推荐

Ubuntu下安装opencv3.4.6+opencv_contrib

简介

在安装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》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。