miniconda3 安装numpy_OpenCV4在Ubuntu1810/1604安装

本文简要介绍OpenCV4在Ubuntu 1810上的安装。

目前OpenCV最新的稳定版本是4.0.1,可以从官网下载并解压,也可以从github上获取最新源码进行安装

  1. 安装依赖
sudo apt-get install cmake build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev:i386 libtiff5-dev

2. 获取opencv并安装,注意打开OPENCV_GENERATE_PKGCONFIG=ON,以便pkg-config使用,github出现issue,如果要加Python3,那么请打开对应的选项并填好路径[不过应该没必要,pip中的OpenCV现在已经是4的版本了]

# step 1
mkdir somedir
cd somedirgit clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.gitcd opencv && mkdir build &&cd build# step 2
#########################################################
# Option 1 :Simple                                      #
#########################################################
cmake  -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DOPENCV_GENERATE_PKGCONFIG=ON ..
#########################################################
# Option 2 :more Complex,加入opencv_contrib模块          #
#########################################################
cmake -D CMAKE_BUILD_TYPE=RELEASE 
-D CMAKE_INSTALL_PREFIX=/usr/local 
-D OPENCV_GENERATE_PKGCONFIG=ON 
-D INSTALL_PYTHON_EXAMPLES=ON 
-D INSTALL_C_EXAMPLES=ON 
-D OPENCV_ENABLE_NONFREE=ON 
-D OPENCV_EXTRA_MODULES_PATH=~/Documents/opencv4/opencv_contrib/modules 
-D BUILD_EXAMPLES=ON ..
#########################################################
# Option 3 :                                            #
# OpenCV4.1.1 on Ubuntu1604 with Miniconda3 & Python3.7 #
#########################################################
cmake -D CMAKE_BUILD_TYPE=RELEASE 
-D CMAKE_INSTALL_PREFIX=/usr/local 
-D OPENCV_GENERATE_PKGCONFIG=ON 
-D INSTALL_PYTHON_EXAMPLES=ON 
-D INSTALL_C_EXAMPLES=ON 
-D OPENCV_ENABLE_NONFREE=ON 
-D OPENCV_EXTRA_MODULES_PATH=~/repo/opencv_contrib/modules 
-D PYTHON3_EXECUTABLE=/home/gpu05/miniconda3/bin/python 
-D PYTHON_INCLUDE_DIR=/home/gpu05/miniconda3/include/python3.7m 
-D PYTHON_LIBRARY=/home/gpu05/miniconda3/lib/libpython3.7m.so 
-D PYTHON3_NUMPY_INCLUDE_DIRS=/home/gpu05/miniconda3/pkgs/numpy-1.17.0-py37h95a1406_0/lib/python3.7/site-packages/numpy/core/include/numpy 
-D BUILD_EXAMPLES=ON ..make -j8
sudo make install

3. 使用pkg-config测试

$ pkg-config --libs --cflags opencv4
-I/usr/local/include/opencv4/opencv -I/usr/local/include/opencv4 -L/usr/local/lib -lopencv_dnn -lopencv_gapi -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_stitching -lopencv_video -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_flann -lopencv_videoio -lopencv_imgcodecs -lopencv_imgproc -lopencv_core

4. 小Demo测试,show.cpp:

// show.cpp 
#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>#include <iostream>
#include <string>using namespace cv;
using namespace std;int main( int argc, char** argv )
{String imageName("/home/paul/Pictures/test.jpg" ); // by defaultif( argc > 1){imageName = argv[1];}Mat image;image = imread( imageName, IMREAD_COLOR ); // Read the fileif( image.empty() )                      // Check for invalid input{cout <<  "Could not open or find the image" << std::endl ;return -1;}namedWindow( "Display window", WINDOW_AUTOSIZE ); // Create a window for display.imshow( "Display window", image );                // Show our image inside it.waitKey(0); // Wait for a keystroke in the windowreturn 0;
}

编译并执行,可加-std=c++11选项:

g++ show.cpp -o show.o $(pkg-config --libs --cflags opencv4)
or 
g++ -std=c++11 show.cpp -o show.o $(pkg-config --libs --cflags opencv4)
./show.o

结果如下:

e350ec1b801c5f47b7ae9a5fe055cd31.png

5. 测试目标检测Demo-Yolo V3,进入从git上拉下来的/opencv/samples/dnn目录,编译并执行,对摄相头进行目标检测

cd /yourdir/opencv/samples/dnn
g++ object_detection.cpp -o object_detection -std=c++11 $(pkg-config --libs --cflags opencv4)
./object_detection --@alias=yolo --classes=/yourdir/opencv/samples/data/dnn/object_detection_classes_yolov3.txt

e43a61661681a3499731d65e90edf47a.png

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

载winpcap4.1.1_最常用的11个电缆载流量数据表,建议收藏备用

《0.6/1KV聚氯乙烯绝缘电力电缆载流量》《1~3芯额定电压0.6/1kv-1.8/3kv电缆载流量表》《YJV、YJY、YJV22额定电压在6/6、6/10kv电缆载流量》《常见BVVB型、BLVVB型、RVVB型电线载流量》《常见BV线载流量》《矿物质绝缘电缆载流量表》载流量数据表&#xff0c;是我们在日常工作…

android 虚拟键盘改变单个按键颜色_这款机械键盘很特别!一亿次按键寿命还有高颜值...

电脑主机要上RGB&#xff0c;那外设自然不能落下&#xff0c;虽说没有60%性能加成&#xff0c;用炫酷的灯光点亮桌面的感觉也是不错的。德国老牌外设品牌——冰豹(ROCCAT)2018年发布了Vulcan系列机械键盘&#xff0c;凭借着独特的设计和AIMO智能灯效颇受玩家好评。现在&#xf…

C++设计模式 #6 桥模式(Bridge)

动机 由于某些类型的固有的实现逻辑&#xff0c;使得它们具有两个变化的维度&#xff0c;乃至多个变化的维度。 如何应对这种“多维度的变化”&#xff1f;如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化&#xff0c;而不引入额外的复杂度 举个栗子 我们…

c99什么意思_C语言中-是什么意思啊?

展开全部->是一个整体&#xff0c;它是用于指向结构体、C中的class等含有子数据的指针用e5a48de588b662616964757a686964616f31333366303130来取子数据。换种说法&#xff0c;如果我们在C语言中定义了一个结构体&#xff0c;然后申明一个指针指向这个结构体&#xff0c;那么…

mysql外键关联查询_MySQL外键约束和多表联查

一.创建外键#测试数据表# 教师表&#xff0c;主表CREATE TABLE teacher(id INT PRIMARY KEY AUTO_INCREMENT,name varchar(20),age INT)ENGINEInnoDB DEFAULT CHARSETUTF8;#测试数据&#xff1a;INSERT INTO teacher values(1,范冰冰,22),(2,周杰棍,30),(3,双杰伦,35),(4,梁朝伟…

mysql innodb id_MySQL InnoDB row_id边界溢出验证的方法步骤

背景跟同学聊到row_id一个边界问题&#xff0c;这里详细说明下。InnoDB表若没有定义主键&#xff0c;会使用系统的一个默认递增row_id (dict_sys->row_id)作为主键。每次插入一行加1&#xff0c;到达最大值循环复用。需要注意的是&#xff0c;虽然dict_sys->row_id 被定义…

mysql mysqld.sock_MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

首先&#xff0c;环境:ubuntu 14.04,采用apt-get的方式安装的&#xff0c;手动安装可能路径设置稍有区别。1、安装MySQL后&#xff0c;用命令行首次启动时发现找不到Mysqld.sock文件&#xff0c;提示&#xff1a;ERROR 2002 (HY000): Cant connect to local MySQL server throu…

plan explorer mysql_plan explorer支持oracle吗

展开全部1.SQL语句的执行62616964757a686964616fe58685e5aeb931333361326365计划使用EXPLAIN PLAN语句来确定Oracle数据库下指定SQL语句的执行计划&#xff0c;这个语句插入每一步执行计划的行描述到指定表中。你也可使用EXPLAIN PLAN语句作为SQL跟踪工具的一部分。EXPLAIN PLA…

python 列表转图结构_Python读取网络(图)边列表数据进而转化为邻接矩阵

import networkx as nxG nx.Graph()path ./edge_list.txtedge_list []node_set set() #集合的特性就是元素不会重复&#xff0c;互异的with open(path, r) as f:for line in f:cols line.strip().split( )y1int(cols[0])y2int(cols[1])node_set.add(y1)node_set.add(y2)ed…

r语言读写word_R语言:在word中插入ggplot

最近CRAN上新了一个叫eoffice的package&#xff0c;并且不时被各路大佬提起。这个包的功能刚好也符合我最近的需求&#xff0c;这次带各位先来试试水。包的官方介绍&#xff1a;1. Introduction​cran.r-project.org这次主要试试在word中用该包插入ggplot。既然要试&#xff0c…

hamburger组件_一个侧边栏导航组件实现思路

翻译&#xff1a;布兰作者&#xff1a;Adam Argyle来源&#xff1a;https://web.dev/building-a-sidenav-component/在这篇文章中&#xff0c;我想和大家分享我是如何为 web 原型化一个 Sidenav 组件的&#xff0c;这个组件是响应式的&#xff0c;有状态的&#xff0c;支持键盘…

centos php mysql 5.6 安装_centos7安装nginx、php5.5、mysql5.6

一、nginx1、安装yum install nginx2、启动systemctl start nginx关闭&#xff1a;systemctl stop nginx 重启&#xff1a;systemctl restart nginx 检查状态&#xff1a;systemctl status nginx3、测试浏览器直接访问http://ip,应该会看到以下界面&#xff1a;4、支持php打开/…

myeclipse怎么导入mysql驱动_myeclipse sql导入数据库驱动包

如何配置strutshibernate&#xff0c;基本使用方法不少童鞋在自学SSH框架的时候&#xff0c;难在创建第一个项目&#xff0c;如何搭建好这些框架&#xff0c;很多书上只是给出了代码但是没有教如何使用&#xff0c;所以在本次博客中将会图文结合来说一下如何使用struts结合hibe…

创建或更改表 tablename 失败_mysql 创建用户

一. 创建用户命令:CREATE USER usernamehost IDENTIFIED BY password;说明&#xff1a;username&#xff1a;你将创建的用户名host&#xff1a;指定该用户在哪个主机上可以登陆&#xff0c;如果是本地用户可用localhost&#xff0c;如果想让该用户可以从任意远程主机登陆&#…

sql2000 mysql 兼容_SQL Server2000如何恢复数据库

以里诺仓库管理软件(SQL网络版)为例&#xff0c;如果您因电脑操作系统重装&#xff0c;需要把以前备份的数据库恢复过来&#xff0c;请您按如下操作来。首先&#xff0c;您需要安装MS SQL Server2000。1. 以Windowns XP为例&#xff0c;SQL Server个人版安装完成后&#xff0c;…

java dfs_Java数据结构与算法 深搜(DFS)的简单使用(一)之排列组合

今天&#xff0c;我们来简单介绍一下深度优先搜索(DFS)的概念和使用。在百度词条中&#xff0c;对深搜的解释是这样的。百度词条中的解释由此&#xff0c;我们可知&#xff0c;深搜是广泛运用到 图 中的搜索方法之一。用深度优先搜索遍历图的基本思路是&#xff1a;(1)访问顶点…

java 线程执行结束_Java_如何等待子线程执行结束

本程序的数据有可能是如下:main thread work startsub thread start working.main thread work done.now waiting sub thread done.sub thread stop working.now all done.忽略标号, 当然输出也有可能是1和2调换位置了. 这个我们是无法控制的. 我们看下线程的join操作, 究竟干了…

mysql将时间轴转化为时间_MySQL日期计算及格式转换有关问题

mysql日期计算及格式转换问题2012-06-09 21:08 MySQL日期计算及格式转换问题做开发的时候经常会碰到以下几个问题使用mysql的内置函数将时间轴转成对应的日期方法一&#xff1a;使用from_unixtime(unix_timestamp)函数即可实现&#xff0c;如&#xff1a;SELECT FROM_UNIXTIME(…

java语言特点 字符串不变_面试必问:Java中String类型为什么设计成不可变的?

这几天在各大平台上都看到过这样一些帖子&#xff0c;全都是关于String类型对象不可变的问题&#xff0c;当然现在也是找工作的准备时期&#xff0c;因此花了一部分时间对其进行整理一下。想要完全了解String&#xff0c;在这里我们需要解决以下几个问题(1)什么是不可变对象&am…

java socket android_Android:这是一份很详细的Socket使用攻略

前言Socket的使用在 Android网络编程中非常重要今天我将带大家全面了解 Socket 及 其使用方法目录示意图1.网络基础阅读本文前&#xff0c;请先了解 关于计算机网络基础&#xff0c;如计算机体系结构、TCP、UDP等知识2. Socket定义即套接字&#xff0c;是应用层 与 TCP/IP 协议…