记录::windows+ubuntu:opencv编译,cmake编译vs动态库

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值