ubuntu20.04安装opencv3.4.1

程序之美

前言

OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。我们生活中遇到的很多图形图像处理的应用和软件都或多或少的会借鉴或应用此库,
故此,亲自研究,实践,Linux下的OpenCV,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学OpenCV的小伙伴,避免走弯路,费时费力。

主体

本篇我们先学习下OpenCV在Ubuntu 20.04下的编译与安装。

下载

进入opencv官网下载
选择sources下载相应版本的压缩包。
我这里是github下载的,下载地址为:https://github.com/opencv/opencv
解压文件,放到home/(用户名)/目录下,我这里下载的是OpenCV-4.6.0。
在这里插入图片描述

安装命令

unzip OpenCV-4.6.0.zip
cd opencv

mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local …
make -j4
make install

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

如果按照make -j${proc}进行编译,常出现卡死状态,后来改为make -j4就能顺利通过了。

环境配置

编辑/etc/ld.so.conf

sudo gedit /etc/ld.so.conf

 
 
  • 1

在文件中加上一行

include /usr/local/lib

 
 
  • 1

保存文件退出,编辑 /etc/bash.bashrc 文件

sudo gedit /etc/bash.bashrc 

 
 
  • 1

在文件末尾加上几行

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

 
 
  • 1
  • 2

保存文件退出。

查看是否opencv成功:

pkg-config --modversion opencv # 出现版本号即成功

 
 
  • 1

将opencv加入环境变量:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/

 
 
  • 1

所遇问题

在这里插入图片描述

Package opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc'
to the PKG_CONFIG_PATH environment variable
No package 'opencv' found

 
 
  • 1
  • 2
  • 3
  • 4

该如何解决呢?

方法一,尝试未解决:

sudo apt install libopencv-dev htm

 
 
  • 1

方法二,解决问题。
方法如下:

cd /usr/local/lib

sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc
sudo vim opencv.pc

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

首先建一个新的文件夹:pkgconfig
然后cd到这个文件夹下,新建opencv.pc文件;
再打开opencv.pc文件,文件内输入:

prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib

Name: opencv
Description: The opencv library
Version:4.1.2
Cflags: -I i n c l u d e d i r / o p e n c v 4 L i b s : − L {includedir}/opencv4 Libs: -L includedir/opencv4Libs:L{libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

其中version是你的opencv版本
最后:wq保存退出。

测试代码:

#include<iostream>
#include<opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
	VideoCapture cap(0);
	if (!cap.isOpened())
	{
		printf("Can not open a camera\n");
		return -1;
	}
	while (true)
	{
		Mat frame, hsvedges, edges;
		cap >> frame;
		if (frame.empty())
			break;
		cvtColor(frame, hsvedges, COLOR_BGR2HSV);
		imshow("hsvedges", hsvedges);
 
		cvtColor(frame, edges, COLOR_BGR2GRAY);
		Canny(edges, edges, 175, 255, 3);
		imshow("edges", edges);
 
		//等待 30 秒,如果按键则推出循环
		if (waitKey(30) >= 0)
			break;
	}
	waitKey(0);
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值