opencv-3.4.5 在 Windows 和 Ubuntu20.04 下面编译与安装【超全合集】

15 篇文章 1 订阅
2 篇文章 0 订阅

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。感谢各位的参考查看。


笔记资料仅供学习交流使用,转载请标明出处,谢谢配合。
如果存在相关知识点的遗漏,可以在评论区留言,看到后将在第一时间更新。
作者:Aliven888

1、下载 opencv 开源代码

  登录 官网地址 下载自己需要的版本库。

  • Sources :开源代码文件(点击即可下载)。

下载开源库

  因为到opencv官网有时网络进不去(或者进入比较慢),这个版本的开源代码我已下载,并上传到了百度云,需要的可以自取:

## 链接长期有效,如果出现异常,请留言,看到后我将第一时间处理。

链接:https://pan.baidu.com/s/1SFn3_pbdboj6OvT7e8DmAw 
提取码:y2tj

2、Ubuntu20.04 环境下的操作

2.1、 安装 与 卸载

# 安装依赖库
> sudo apt-get install build-essential cmake libgtk2.0-dev libtiff4-dev libjasper-dev libavformat-dev libswscale-dev libavcodec-dev libjpeg62-dev pkg-config ffmpeg

# 我使用的是 opencv-3.4.5 版本
# ubuntu 20.04 本地编译并安装 opencv-3.4.5 库
> unzip opencv-3.4.5.zip -d ./  # 解压
> cd opencv-3.4.5
> mkdir build
> cd build
> cmake ..  # 这里使用默认安装路径
> make # 编译

# 安装
> sudo make install

# 安装后的include 、 libs 位置
# 通常情况下安装到下面四个路径: 

# 这里需要注意一点:如果其他主机不想安装(想使用免安装的版本),
# 这里可以直接把 include 下的头文件 和 lib 下的库 拷贝过去即可;
# 但是,因为是免安装,所以在使用时,需要指定include 和 lib 位置。

# /usr/bin  
# /usr/include # 头文件
# /usr/lib     # 动态库
# /usr/share

# 卸载
> cd build 
> sudo make uninstall  # 卸载
> find /usr -name "*opencv*"   # 查找所有文件路径  
    /usr/xx1  
    /usr/xx2
    ...

> sudo rm -rf /usr/xx1  /usr/xx2 ...

2.2、 C++ Demo

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;
using namespace std;
int main() 
{
	Mat img = imread("/home/aliven/Documents/pic.jpg");
	if(img.empty()) 
	{
		cout<<"read error"<<endl;
		return 0;
	}
	namedWindow("image",1);
	imshow("image",img);
    waitKey(10000);
	return 0;
}

2.3、 CMakefile 调用

VERSION=1.0.0

INCLUDES=-I/usr/local/include/opencv2
LIBDIRS=-L/usr/local/lib
LIBS=-lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs -lopencv_videoio

CXX=g++
CXXFLAGS+=-g -std=c++11 -Wall

main:main.cpp
	${CXX} ${FLAGS} main.cpp -o main ${INCLUDES} ${LIBDIRS} ${LIBS}

.PHONY:clean
clean:
    -rm -rf main

2.4、 CMakeLists.txt 调用

# CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(AlivenPro)
add_definitions("-O2")
add_definitions(-std=c++11)
find_package(OpenCV REQUIRED)

include_directories(
	${OpenCV_INCLUDE_DIRS}
)
link_directories(
	/usr/local/lib
)
add_subdirectory(${PROJECT_SOURCE_DIR}/src)


# src/CMakeLists.txt
aux_source_directory(. DIRSRCS)
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
add_executable(main ${DIRSRCS})
add_library(main_lib SHARED ${DIRSRCS})
add_library(main_lib_static STATIC ${DIRSRCS})
set_target_properties(main_lib PROPERTIES OUTPUT_NAME "main")
set_target_properties(main_lib_static PROPERTIES OUTPUT_NAME "main")
set_target_properties(main_lib_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
set_target_properties(main_lib PROPERTIES CLEAN_DIRECT_OUTPUT 1)
set_target_properties(main_lib PROPERTIES VERSION 1 SOVERSION 1)

target_link_libraries(
	main ${OpenCV_LIBS}
)

2.4、可能遇到的问题



###################### 问题 1 ###############################
> ./main
./main: error while loading shared libraries: libopencv_core.so.3.4: cannot open shared object file: No such file or directory

# 问题分析:需要配置环境变量
# 解决方案:
> cd /etc/ld.so.conf.d
> touch OpenCV.conf
> vi OpenCV.conf
   /usr/local/lib  # 写入库路径
> sudo ldconfig



###################### 问题 2 ###############################
>./main
terminate called after throwing an instance of 'cv::Exception'
  what():  OpenCV(3.4.5) /home/aliven/Music/opencv-3.4.5/modules/highgui/src/window.cpp:617: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvNamedWindow'

Aborted (core dumped)

# 问题分析:缺少库
# 解决方案:安装下面库之后,卸载 opencv, 重新编译 build 并安装
> sudo apt-get install ffmpeg
> sudo apt-get install libgtk2.0-dev
> sudo apt-get install pkg-config

3、Windows 环境下的操作

3.1、安装 CMakeTool

  在编译 opencv 库之前,请确保 Windows 系统已经安装 CMake 工具。

  可以选择 安装包 或者 免安装的包,这里我选择的是免安装的。

官网下载地址:CMake

百度云下载地址:

链接:https://pan.baidu.com/s/19VRUw_gGINF_9R2IsMicvQ 
提取码:u5zc

在这里插入图片描述

3.2、编译 Opencv 库。

  • 在第4/5步中,我选择的编译器是vs2015,开发环境win32(可以根据自己的需求进行选择)。
  • 点击 “Finish” 按钮后,开始编译 Opencv 库。

在这里插入图片描述

  • 去掉勾:BUILD_TESTS、BUILD_opencv_ts、BUILD_opencv_python3、BUILD_opencv_python_bindings_generator。
  • 勾选:BUILD_opencv_world。

在这里插入图片描述

  • 依次点击 “Configure” 和 “generate” 按钮完成配置。

在这里插入图片描述

  • 此时在 D:/AlivenFiles/ZProjectCode/opencv345/opencv345/build 目录下生成了 opencv 的 vs2015 工程。双击 OpenCV.sln 打开工程。

在这里插入图片描述

  • 配置 Debug win32,找到 CMake TargetsALL_BUILD – 生成/重新生成,整个过程大约需要 5 分钟,请耐心等待。

在这里插入图片描述

  • 找到CMake Targets – INSTALL – 生成/重新生成,整个过程大约需要 3 分钟,请耐心等待。

在这里插入图片描述

  • D:\AlivenFiles\ZProjectCode\opencv345\opencv345\build\install\include 生成了头文件。

在这里插入图片描述

  • D:\AlivenFiles\ZProjectCode\opencv345\opencv345\build\install\x86\vc14\lib 生成了静态库文件。

在这里插入图片描述

  • D:\AlivenFiles\ZProjectCode\opencv345\opencv345\build\install\x86\vc14\bin 中生成了动态库文件。

在这里插入图片描述

3.3、可能遇到的问题

问题 1: Error in configuration process, project files may be invalid

问题描述: 点击 “configure” 按钮,弹框错误如下:Error in configuration process, project files may be invalid

问题分析: 本质原因是 The Windows SDK version 8.1 was not found(在安装 vs2015 是没有勾选进行安装)。

解决方案: 安装 Windows SDK version 8.1 即可(打开 vs2015 安装包,选择 “修改” 按钮,然后勾选目标库,点击下一步进行安装)。

在这里插入图片描述

  • 安装完成后,电脑需要重启才能生效。

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值