Python下的OpenCV学习 01 —— 在Linux下安装OpenCV
一、OpenCV简要介绍
OpenCV是一个跨平台的计算机视觉库,可以运行在Windows、Linux、MacOS等操作系统上。OpenCV提供了众多语言的接口,其中就包含了Python,Python是一门上手容易、使用起来十分让人愉悦的语言,利用Python学习OpenCV,相信能获得不错的效果。
二、从官网上下载源码或安装包
OpenCV的官方下载网址是http://opencv.org/releases.html,我选择的是最新3.2.0版本。
三、编译安装前的准备工作
对于Windows用户,可直接下载exe文件安装,过程十分简单,这里就不再多说了,如果遇到问题可以看看官方的安装指南
对于Linux用户,可下载源码自行编译。在官网上下载zip格式的源码压缩包,在编译之前需要先安装几个包:
- GCC 4.4.x or later
- CMake 2.8.7 or higher
- Git
- GTK+2.x or higher, including headers (libgtk2.0-dev)
- pkg-config
- Python 2.6 or later and Numpy 1.5 or later with developer packages (python-dev, python-numpy)
- ffmpeg or libav development packages: libavcodec-dev, libavformat-dev, libswscale-dev
- [optional] libtbb2 libtbb-dev
- [optional] libdc1394 2.x
- [optional] libjpeg-dev, libpng-dev, libtiff-dev, libjasper-dev, libdc1394-22-dev
- [optional] CUDA Toolkit 6.5 or higher
[optional]代表这个package是可选的,上面这些包都是可以通过apt-get命令直接安装的,打开终端,输入以下命令:
[compiler] $ sudo apt-get install build-essential
[required] $ sudo apt-get install cmake git libgtk2.-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
[optional] $ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394--dev
只需一小会,编译所依赖的packages便全部安装完毕了(这也是我喜欢Linux的原因之一,安装package十分的便利)。接着就是开始编译了,实际上编译只需要三行命令就可以完成。不过在此之前,还要在解压后的opencv-XXX 文件夹内建立一个build文件夹,编译生成的makefiles、project files、object files和output files会放在build文件夹里面。完成后,就可以开始正式的编译了。
四、编译安装
1.配置。
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
CMAKE_BUILD_TYPE: build的类型,有Release和Debug两种
CMAKE_INSTALL_PREFIX: 指定想要安装OpenCV的文件夹目录,一般就用/usr/local
除此之外,还可以添加上BUILD_DOCS 来build文档 以及 BUILD_EXAMPLES 来build所有的样例
注意:如果上面的命令行无法工作,则把-D后面的空格去掉:
$ cmake -D CMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
2.编译。
为了加快编译速度,一般会使用多线程的方法:
make -j7 # 同时使用七个线程
3.安装。
sudo make install
如果到现在你还没遇到任何问题,那么恭喜你,你已经成功在Linux上安装了OpenCV。
五、在Python下测试你的OpenCV
为了测试你的OpenCV能否在Python上使用,可以运行一段小代码,读取一张图片并显示出来:
import cv2 # 引入OpenCV模块 image = cv2.imread("logo.png", 1) # 读取一张图片,存储在image中
cv2.imshow("Hello, world!", image) # 创建一个名为"Hello,world!"的窗口,把image在窗口中展示出来
cv2.waitKey(0) # 等待用户按下任意按键
cv2.destroyAllWindows() # 销毁所有的窗口
如果运行时报错,尝试把图片的相对路径改为绝对路径。运行成功后,你会看到你所选择的图片,我的图片是:
参考资料:OpenCV: Installation in Linux
最新文章
- LinqToDB 源码分析——处理表达式树
- selenium的安装
- [.net 面向对象编程基础] (15) 抽象类
- jQuery的动画处理总结
- 配置mysql远程访问权限,大家可能掉过的那些坑~
- Visual C++ 中的重大更改
- [转]Excel 取汉字拼音首位
- login控件重载登陆方法
- jquery常见问题
- 封装sharedPreferences SettingsSPData
- SCVMM配置
- cdoj 48 Cake 水题
- Excel Xll开发资料
- Python和SQL 2017的强大功能
- 南京邮电大学java程序设计作业在线编程第二次作业
- java多线程(死锁,lock接口,等待唤醒机制)
- About me &; 一些置顶的博文
- 性能测试二十五:redis-cli 命令总结
- Bzoj2673 3961: [WF2011]Chips Challenge 费用流
- 【springBoot】之定制Banner
热门文章
- MessageBoxButtons.OKCancel的选择事件
- centos7 安装elasticsearch
- ASP.NET Core MVC 过滤器介绍
- Android_65535问题的解决
- 禁用Ubuntu 15.04登录界面显示客人会话
- [Oracle]约束(constraint)
- Nancy基于JwtBearer认证的使用与实现
- filezilla里怎么解决中文乱码问题
- tensorflow bias_add应用
- SpringMVC源码情操陶冶-AbstractHandlerExceptionResolver