1、windows
环境:window7,cmake-gui,vs2013
opencv:3.4.4
opencv_contrib:3.4.4(nonfree模块,主要为了用sift)
链接:https://pan.baidu.com/s/1OXg2IRaxTLTVqM2PVR2ZFA
提取码:qu4z
1、cmake
设置路径,点击configure,选择vs2013,设置64位(不选默认win32)
然后在点击configure,开始运行,因为要下载一些东西特别慢还下载失败,自己手动下一下,在cmakeDownLoadLog.txt里面找几个链接,下载之后重命名放到下面的地方就行
再次点击congifure,直到没有红色报错为止
2、nonfree模块
cv 没有成员 initModule_nonfree,没有opencv2/nonfree/nonfree.hpp文件,SIFT::create实例等问题,就是因为现在的opencv没有sift了,需要编译的时候就添加进来,下载对应版本的opencv_contrib,
在cmake中选上OPENCV_ENABLE_NONFREE" 和"OPENCV_EXTRA_MODULES_PATH"
然后点击Configure
Release 3.4.4 · opencv/opencv_contrib · GitHub
同理会有很多下载失败,在CMakeDownloadLog.txt里面找到链接,然后手动下载一下然后替换,直到没有错误为止,点击generate
3、VS2013
错误1:decode.c quirc报错
都是quirc报的错,取消勾选,重新generate
错误2:_MSC_VER不匹配,在目录里面也找不到这些lib,但发现都是vtk的东西,就把VTK的勾选取消了
4、sift使用
#include <opencv2/nonfree/nonfree.hpp>
头文件替换为:
#include <opencv2/xfeatures2d/nonfree.hpp>
Ptr<SIFT> detector = SIFT::create("SIFT");
替换为:
Ptr<xfeatures2d::SIFT> detector=xfeatures2d::SIFT::create();;
2、ubuntu
Releases - OpenCVopencv下载链接
https://github.com/opencv/opencv_contrib/tags opencv-contrib下载链接
没有提前安装环境,缺啥装啥吧
不过提前装了这些应该会轻松一些:
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
mkdir build
cd build
cmake指令:
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=~/tools/opencv-4.5.0/opencv_contrib-4.5.0/modules ..
CMAKE_BUILD_TYPE=Release:Release版
CMAKE_INSTALL_PREFIX=/usr/local :安装位置
OPENCV_GENERATE_PKGCONFIG=ON:据说很重要
OPENCV_EXTRA_MODULES_PATH=~/tools/opencv-4.5.0/opencv_contrib-4.5.0/modules :扩展库位置
..
sudo make -j8
sudo make install
参考:
Ubuntu18.04安装Opencv4.5(最新最详细)_ubuntu安装opencv4.5_向日葵骑士Faraday的博客-CSDN博客
后面就是环境配置
1、
sudo gedit /etc/bash.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
2、
sudo gedit /etc/ld.so.conf
/usr/loacal/lib
sudo ldconfig
3、检查安装情况
#终端输入以下两命令,显示正常则安装成功
pkg-config --modversion opencv4 #查看版本号
pkg-config --libs opencv4 #查看libs库
3、问题
编译opencv3.2.0的时候遇到一个问题
1、#include <sys/videoio.h>
CheckIncludeFile.c:1:10: fatal error: sys/videoio.h: 没有那个文件或目录
解决方法:
关闭ippicv没有用,最后是把CUDA关了,-D WITH_CUDA=OFF,加上这个就编译通过了
2、#缺少linux/videodev.h not found
解决方法:
sudo apt-get install libv4l-dev
#软链接
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
3、编译的时候报错codec_flag_global_header未定义
解决方法:
在报错的那个文件(我的是modules/videoio/src/cap_ffmpeg_impl.hpp)前面加上:
#define AV_CODEC_FLAG_GLOBAL_HEADER (1 << 22)
#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER
#define AVFMT_RAWPICTURE 0x0020