Ubuntu20.04安装OpenCV3(图解亲测)
1. 下载opencv与安装cmake
1.1安装cmake
终端执行下面语句,安装cmake
sudo apt-get install cmake
1.2 安装依赖环境
点击查看代码
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libgtk2.0-dev
sudo apt-get install pkg-config
点击Sources进行下载自己需要的版本
2. 安装
2.1 解压文件
解压后,将文件夹放自己喜欢的地方,我就放在了Downloads~下
2.2 进入到解压后的文件夹下
在opencv-3.2.0文件夹下新建build文件夹
终端运行
mkdir build
进入build文件夹下
cd build
2.3 进行cmake
在build目录下运行
sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
2.4 进行编译
接下来时一个漫长的等待过程,大概需要等10分钟,不要多虑
sudo make -j8
可以使用sudo make -j 8 、sudo make -j4 、sudo make
我这里就使用sudo make 了
编译opencv3.2.0报错:
2-错误原因:缺少几个关键的宏定义
3-解决方法
在相应头文件中添加宏定义即可,如图可以看到是cap_ffmpeg_impl.hpp
opencv-3.2.0/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
解决方法:
编辑 opencv-3.2.0/modules/python/src2/cv2.cpp 文件,更改第730行:
点击查看代码
bool pyopencv_to(PyObject* obj, String& value, const char* name)
{
(void)name;
if(!obj || obj == Py_None)
return true;
char* str = (char *)PyString_AsString(obj);//这是文件的第730行,更改这行,在=后面加(char *)
if(!str)
return false;
value = String(str);
return true;
}
终端执行
sudo gedit /etc/ld.so.conf
输入:
include /usr/local/lib
保存退出
运行下面语句刷新库链接配置
sudo ldconfig
3.2 修改bash.bashrc文件
终端运行
sudo gedit /etc/bash.bashrc
在文件末尾加入:
点击查看代码
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
4.检验是否安装成功
在命令行中输入如下命令
pkg-config opencv --modversion
如图所示,出现版本号就安装成功了。