ubuntu20.04安装opencv4.7

一、准备工作

 step1:安装cmake

执行以下命令安装最新的cmake

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential cmake

step2:安装opencv依赖项

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev
sudo apt-get install libcanberra-gtk-module
sudo apt-get install pkg-config

step3:下载opencv:

https://opencv.org/releases/

 step4:解压并新建【build】文件夹

1. 将下载的文件【opencv-4.7.0.zip】解压到需要安装的目录,解压后会得到【opencv-4.7.0】文件夹。

2. 打开【opencv-4.7.0】文件夹,并新建build文件夹。

(我是装在/home/user_name/app目录下,其中user_name是我的用户名)

二、安装opencv

step1:编译opencv

打开刚才新建的build文件夹,并在该文件夹路径下执行以下命令:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local .. 
sudo make -j8
sudo make install

解释:

第1行:其中第一行最后的[空格+..]一定不能省。其含义是告诉编译器将要编译的文件是来自上一层文件夹的CMakeList.txt文件。

第2行:其中8表示用8个线程同时编译,也可以改为4或者只用单线程,直接用【sudo make】

第3行:安装opencv。

step2:配置opencv在ubuntu的参数

1. 打开ld.so.conf文件(文件可能为空白,不用管他),并在文件末尾加上一行内容【/usr/local/lib】

sudo gedit /etc/ld.so.conf

2. 加载配置,使刚才添加的内容生效。

sudo ldconfig

3. 打开bash.bashrc文件,在文件末尾添加以下两行内容:

sudo gedit /etc/bash.bashrc 

添加的内容:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

添加内容后的bash.bashrc文件: 

 4. 运行bash.bashrc:

 source /etc/bash.bashrc

5. 更新系统的配置环境

sudo updatedb

6. 创建并配置opencv.pc文件

执行以下命令创建并打开opencv.pc文件:

cd /usr/local/lib/pkgconfig
touch opencv.pc
sudo gedit opencv.pc

打开文件后,添加以下内容并保存关闭文件:

注意:我这里装的是opencv4.7.0,如果安装的是别的版本,Version属性需要修改为对应的版本号.

prefix=/usr/local
exec_prefix=${prefix}
includedir=/usr/local/include
libdir=/usr/local/lib
 
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.7.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}

7. 检查opencv安装情况:

pkg-config opencv --modversion

如果安装成功,会有返回版本号:

三、用cmake尝试编译opencv例程序

step1:新建一个文件夹,并创建以下两个文件:

CMakeLists.txt

cmake_minimum_required(VERSION 2.6)
# create proj
project(testopencv)
# c++ 11
set(CMAKE_CXX_FLAGS "-std=c++11")

find_package(OpenCV 4.7.0 REQUIRED) 	# find opencv4.7 installed path
include_directories(OpenCV_INCLUDE_DIRS)	# load opencv header files
add_executable(testopencv main.cpp)	# create exe file
target_link_libraries(testopencv ${OpenCV_LIBS})	# link llib files to exe

main.cpp

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

using namespace std;
using namespace cv;

int main(){
	Mat img=imread("dog.jpg");
	imshow("test", img);
	waitKey(0);
	return 0;
}

step2:在该文件夹内随便放一张图片,命名为【dog.jpg】

step3:在该文件夹目录下执行以下命令:

cmake .
make

编译后,会在同路径下生成一堆文件,其中有一个名为【testopencv】的可执行文件。

step4:执行以下命令运行可执行文件,会打开刚才的dog.jpg文件。

 ./testopencv

注意:路径【./】不可省,否则linux会以为这是一个系统命令。

至此,整个opencv安装测试过程完毕。

————————————————————————————

如果要把扩展模块opencv-contrib也安装,只需:

step1:到github下载opencv-contrib库:

GitHub - opencv/opencv_contrib at 3.3.1

step2:将库解压到build的同级目录下。

step3:编译opencv代码时添加contrib的路径:

将第二节的step1的第一行命令改为如下即可,剩余步骤跟安装opencv一样。(其实就是添加上contrib的路径而已。)

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ..

step4:重复opencv剩余步骤。

  • 10
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值