当前位置: 首页 > 编程日记 > 正文

opencv可以在linux上运行,linux上 安装并 运行opencv

我是在树莓派上安装的。

1.先安装依赖项

OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。

sudo apt-get install build-essential

sudo apt-get install cmake

sudo apt-get install libgtk2.0-dev

sudo apt-get install pkg-config

sudo apt-get install python-dev python-numpy

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev

2.下载编译opencv

wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/3.1.0/opencv-3.1.0.zip/download opencv-3.1.0.zip

解压以后,在其目录中创建一个文件夹build,进入该文件夹, 使用cmake工具在该文件夹中生成makefile文件,指定opencv的安装目录为/usr/local,opencv的源代码位于上一层目录。

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

make #非常慢

最后

sudo make install#更新搜索动态链接库

sudo ldconfig

3. 测试

//读取一张图片,转化成黑白的

#include #include#include#include

using namespacecv;using namespacestd;int main (int argc, char **argv)

{

Mat image, image_gray;

image= imread("1.jpg");

cvtColor(image, image_gray, CV_RGB2GRAY);

namedWindow("image", CV_WINDOW_AUTOSIZE);

namedWindow("image gray", CV_WINDOW_AUTOSIZE);

imshow("image", image);

imshow("image gray", image_gray);

waitKey(0);return 0;

}

需要写makefile文件:

#头文件

INCLUDE = $(shell pkg-config --cflags opencv)#扩展库

LIBS = $(shell pkg-config --libs opencv)#目标文件

SOURCES =test.cpp#可执行文件

OBJECTS = $(SOURCES:.cpp=.o)

TARGET=test

$(TARGET):$(OBJECTS)

g++ -o $(TARGET) $(OBJECTS) -I $(INCLUDE) $(LIBS)

$(OBJECTS):$(SOURCES)

g++ -c $(SOURCES)

clean:

rm $(OBJECTS) $(TARGET)#.cpp

g++ -I $(INCLUDE) -o $@ -c $<

注意:可执行动作前是Tab不是空格!

原文:http://www.cnblogs.com/farewell-farewell/p/6125761.html

相关文章:

Calendar类点点滴滴积累

为什么80%的码农都做不了架构师&#xff1f;>>> set(f, value) 将日历字段 f 更改为 value。此外&#xff0c;它设置了一个内部成员变量&#xff0c;以指示日历字段 f 已经被更改。尽管日历字段 f 是立即更改的&#xff0c;但是直到下次调用 get()、getTime()、get…

3.3 栈的链式存储结构

<?php header("content-type:text/html;charsetutf-8"); /*** 栈的链式存储结构的基本操作**包括* 1.初始化 __contruct()* 2.进栈操作 push()* 3.出栈操作 pop()* 4.销毁栈 destroyStack()* 5.清空栈 clearStack()* 6.遍历栈 stackTraverse()*/ class Node{publ…

readelf 读取动态链接表命令

readelf -sV xxx 查看指定二进制文件运行时的加载库以及对应版本 并依据该命令可以修改某一二进制文件依赖的glibc库函数的版本&#xff0c;从而让改二进制程序可以运行在低版本的操作系统 readelf 读取链接表头 readelf -h xxx ELF文件介绍 ELF&#xff08;executable and …

[转]cocos2d-x

Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎&#xff0c;使用 C 开发&#xff0c;基于OpenGL ES&#xff0c;基于Cocos2d-iphone&#xff0c;支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7&#xff0c;WindowsPhone 8.[1]Cocos2d-x是一个开源的…

Linux哪个和Windows很像,Linuxfx - 这套Linux操作系统看起来和Windows 10非常类似

正如你在截图中所看到的那样&#xff0c;Linuxfx的外观和感觉与Windows 10非常类似&#xff0c;甚至还可以得到一个带有Windows开始按钮的开始菜单&#xff0c;然而&#xff0c;这个实际上可能是一个问题&#xff0c;因为微软可能不喜欢在另一个操作系统中看到它的Windows标志。…

OSPF工作原理

ospf工作原理链路状态路由协议open标准最短路径优先&#xff08;spf&#xff09;算法链路状态路由协议&#xff08;vs&#xff0c;距离矢量&#xff09;与rip的区别 rip是周期性更新&#xff08;30&#xff09;ospf 不发送完整的路由条目但是它发送链路状态的更新有不同的分…

第十八章 MySQL Workbench5.2使用(待续)

转载于:https://www.cnblogs.com/hzzjj/p/9826074.html

r-rpm常用命令集

rpm 安装rpm包 rpm -ivh xxx.rpm rpm -ivh --nodeps --force xxx.rpm强行安装&#xff0c;不考虑依赖性 rpm --nodeps --force -Uvh *同样强行安装&#xff0c;不考虑依赖性 查看一个文件夹属于那个rpm包 rpm -qf /path/filename 查看文件属于哪个rpm包 rpm -qf xxx.so …

MySQL-存储过程

我们常用的操作数据库语言SQL语句在执行的时候需要要先编译, 然后执行; 而存储过程&#xff08;Stored Procedure&#xff09;是一组为了完成特定功能的SQL语句集, 经编译后存储在数据库中, 用户通过指定存储过程的名字并给定参数&#xff08;如果该存储过程带有参数&#xff0…

查看linux虚拟机信息,虚拟机:Linux查看线程信息的步骤

1. 使用 pstree -p PIDps aux | grep firefox | grep -v grepcharles 26058 0.0 0.0 4908 1152 &#xff1f; S 19:17 0:00 /bin/sh /usr/lib/firefox-3.5.4/run-mozilla.sh /usr/lib/firefox-3.5.4/firefoxcharles 26073 7.6 3.4 284264 70164 &#xff1f; Sl 19:17 4:36 /us…

下载备忘:甘特图实现的代码

通过asp.net 代码&#xff0c;拼接字符串&#xff0c;实现甘特图。 样式和原型全部来源于jquery.ganttView插件&#xff0c; https://github.com/mbielanczuk/jQuery.Gantt 通过修改该代码&#xff0c;实现了可以调节高度&#xff0c;宽度等多种参数&#xff0c;具体看代码即可…

Spyder更改默认工作路径已经文件路径

打开spyder&#xff0c;选择菜单栏中的Tools--->Preferences--->Current working directory 然后选择最下面的单选按钮The following directory 。具体操作如下所示 更改文件存放路径 直接点击右上角的的文件夹图标 选择合适的路径即可&#xff1a; 希望能帮到你 转载…

mysql字段类型

数字类型 列类型 需要的存储量 范围、备注 TINYINT 1 个字节 一个很小的整数 有符号的范围是-128到127&#xff0c;无符号的范围是0到255 SMALLINT 2 个字节 一个比较小的整数 有符号的范围是-32768到32767&#xff0c;无符号的范围是0到65535 MEDIUMINT 3 个字节 一…

s-sed替换或者修改文件指定行,同时匹配多个字符串,替换换行符为指定字符

最近需要在脚本中修改几个配置文件参数且不能影响其他参数&#xff0c;于是想到了sed的强大之处&#xff0c;拿来学学 -i参数表示直接替换并修改文件 -i参数时直接修改文件 sed -i s/aaa/bbb/g testfile 将testfile文件中的aaa替换为bbb字符串 删除文件指定行或者某行内容 sed…

linux中非法内存,Linux下数组非法访问导致内存破坏 —— 引发segmentation fault的原因...

2012-02-05 wcdj1, 调试时必需的栈知识2, 数组非法访问导致内存破坏调试时必需的栈知识栈(stack)是程序存放数据的内存区域之一&#xff0c;其特征是LIFO(Last In First Out, 后进先出)式数据结构&#xff0c;即后放进的数据最先备取出。向栈中存储数据的操作称为PUSH(压入)&am…

基于Matlab和Wind SQL数据库的通用选股策略回测程序

function [y,varargout]backtestcomplex(x,varargin) % Created on 2012-07-15 % latest justified on 2012-09-20 % 输入x是一个excel文件的地址字符串&#xff0c;如‘E:\Top50.xlsx’, excel文件的第一行为表头&#xff0c;包含4列&#xff1a;股票交易代码(SZ000001&#x…

Bzoj1123 Blockade

题目链接&#xff1a;https://loj.ac/problem/10104 日常水题&#xff0c;题目中已经给出了算法&#xff0c;写个模板即可&#xff0c;不会割点的这里有一篇博客&#xff1a;https://www.cnblogs.com/WWHHTT/p/9745499.html 难点是每个对可以互换顺序&#xff0c;然后删掉一个点…

sgdisk 磁盘操作命令

划分磁盘分区 sgdisk -n 1:2G:50G /dev/sda 划分磁盘分区&#xff0c;一号分区划分为50G&#xff0c;同时预留2G的空间 磁盘格式化 sgdisk -z -og /dev/sda 查看分区详情 sgdisk -i 1 /dev/hda查看hda第一分区的详情信息 [rootnode3 ~]# sgdisk -i 1 /dev/sdb Partition G…

spring.factories文件的作用

即spring.factories文件是帮助spring-boot项目包以外的bean(即在pom文件中添加依赖中的bean)注册到spring-boot项目的spring容器中。在Spring Boot启动时,它会扫描classpath下所有的spring.factories文件,加载其中的自动配置类,并将它们注入到Spring ApplicationContext中,使得项目能够自动运行。spring.factories文件是Spring Boot自动配置的核心文件之一,它的作用是。

Spring事务七大传播机制与五个隔离级别,嵌套事务

如果当前方法正有一个事务在运行中,则该方法应该运行在一个嵌套事务中,被嵌套的事务可以独立于被封装的事务中进行提交或者回滚。如果封装事务存在,并且外层事务抛出异常回滚,那么内层事务必须回滚,反之,内层事务并不影响外层事务。当前方法必须在一个具有事务的上下文中运行,如有客户端有事务在进行,那么被调用端将在该事务中运行,否则的话重新开启一个事务。当前方法必须运行在它自己的事务中。一个新的事务将启动,而且如果有一个现有的事务在运行的话,则这个方法将在运行期被挂起,直到新的事务提交或者回滚才恢复执行。

emacs python环境配置

python作为日常用语&#xff0c;配置好emacs的开发环境&#xff0c;有效提高日后的开发效率。 几篇老外的文章作为参考&#xff1a; Configing emacs as a python ide python、emacs 安装python和emacs就不用说了&#xff0c;这是必须的&#xff0c;apt-get安装即可 基础python…

编写linux下跑马灯应用程序,01 arm11 led 跑马灯程序

.text.globl _start_start:ldr r0, 0x70000000orr r0, r0, #0x13mcr p15, 0, r0, c15, c2, 4ldr r0, 0x7e004000mov r1, #0str r1, [r0]ldr sp, 8*1024bl xxxxb .start.S文件代码&#xff1b;void delay (){int i;for (i 0; i < 100000; i);}int xxxx (void){volatile unsi…

Exchange 2013防止数据丢失DLP预览

介绍 防止数据丢失&#xff08;Data loss Prevention&#xff09;是Exchange Server 2013带来的一个新功能&#xff0c;感觉其实应该叫做防止数据泄露&#xff0c;许多第三方工具和设备也有类似的功能&#xff0c;而在Exchange 2013种已经直接集成了&#xff0c;并且之前的传输…

Django 模型层(1)

知识预览 ORM简介单表操作章节作业回到顶部ORM简介 MVC或者MVC框架中包括一个重要的部分&#xff0c;就是ORM&#xff0c;它实现了数据模型与数据库的解耦&#xff0c;即数据模型的设计不需要依赖于特定的数据库&#xff0c;通过简单的配置就可以轻松更换数据库&#xff0c;这极…

软件测试面试的linux基础知识,linux基础面试题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼linux的用户管理useradd 用户名&#xff0c;添加用户【案例】useradd xiaomingpasswd 用户名&#xff0c;为新用户设密码【案例】passwd xiaoming&#xff0c;修改小明的密码userdel 用户名&#xff0c;删除用户【案例】userdel xi…

s-sort命令

对文本操作进行排序&#xff0c;以行为单位&#xff0c;依次根据ascii值进行比较&#xff0c;默认的排序方式为升序 sort [-bcfMnrtk][源文件][-o 输出文件]补充说明&#xff1a;sort可针对文本文件的内容&#xff0c;以行为单位来排序。 参 数&#xff1a;-b 忽略…

变体类的使用 package record case【转载】

**************理论区 start********************* DELPHI中记录的存储方式 在DELPHI中&#xff0c;我们用record关键字来表明一个记录&#xff0c;有时候&#xff0c;我们还会看到用packed record来声明的记录&#xff0c;这二者的区别就在于存储方式的不同&#xff1b;在wind…

【Boost】系列01:时间与日期

timer库(含timer,progress_timer和progress_display三个组件)和date_time timer用法&#xff1a; #include <boost/timer.hpp> #include <iostream> using namespace std; using namespace boost;int main() {timer t;//开始计时cout<<"max timespan:&q…

git学习网址

1、git 上传代码到GitHub 以及git删除github上文件和文件的命令 - lexsaints - CSDN博客 https://blog.csdn.net/weixin_42350212/article/details/80560272 2、git误区error: failed to push some refs to gitgithub.com: - whaleluo的博客 - CSDN博客 https://blog.csdn.n…

Linux压缩和解压缩命令集

.tar文件 解压tar zxvf FileName.tar打包tar czvf SourceName.tar DirName .gz文件 解压&#xff1a; gunzip FileName.gzgzip -d FileName.gz 压缩 gzip FileName .tar.gz 和.gz文件 解压tar zxvf FileName.tar.gz压缩tar zcvf FileName.tar.gz DirName .bz2文件 解压…