简介

OpenCV,英文全称Open Source Computer Vision Library。opencv是一个基于(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
官方主页:http://opencv.org/

安装包

下载链接:http://opencv.org/downloads.html
安装包:opencv-2.4.10.zip
请不要下载opencv2.3.1, 会报ffmpeg的错误。 另外, 最新版的opencv3 和opencv2 架构不同。 如果大家用opencv2用的顺手, 先不要升级opencv3了。

安装

安装编译opencv的依赖包

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff5 libtiff5-dev cmake cmake-gui libswscale-dev libjasper-dev

配置opencv,在这里使用cmake-gui进行配置,使用cmake直接配置会报错,后面会介绍。

cd opencv_dir
mkdir build
cd build
cmake-gui .. 

出现下面的界面,更改设置,把WITH-CUDA和BUILD_opencv_gpu选项去掉打钩,然后依次点Configure和Generate按钮生成Configure文件。

编译安装,这样就安装成功了。

make
sudo make install

环境变量

安装成功后还需要设置opencv的环境变量
打开文件

sudo gedit /etc/profile ##个人比较喜欢把环境变量放在/etc/profile里面,'~/.bashrc'一样

在文件最后添加

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

执行下列命令, 使环境变量立即生效

source /etc/profile

lib库路径

打开文件

sudo gedit /etc/ld.so.conf.d/opencv.conf

一般是新建文件,opencv的库一般安装在’/usr/local/lib’文件夹下,在文件内添加

/usr/local/lib

执行下列命令使之立刻生效

sudo ldconfig

经过上面的流程,这样就可以在eclipse里或者qtcreator里用opencv了。 不过要配置号相应的路径和lib文件。

示例代码

对opencv的sample进行编译并运行

cd opencv_dir/samples/c
./build_all.sh
./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg 

运行结果

python使用opencv

如果想在python中使用opencv的话,这里使用的是python虚拟环境(http://blog.csdn.net/honyniu/article/details/46382929),只需要把opencv编译的cv2.so和原始的cv.py拷贝到python的site-packages路径下面

cp opencv_dir/build/lib/cv2.so ENV/lib/python2.7/site-packages/
cp opencv_dir/modules/python/src2/cv.py ENV/lib/python2.7/site-packages/

简单的改变图片大小并保存的python代码

import cv2 as cv
im = cv.imread(IMAGE_FILE)   #IMAGE_FILE图片路径
im = cv.resize(im, (500, 500))
cv.imwrite(IMAGE_FILE_CP, im)   #IMAGE_FILE_CP保存图片路径

出错

就像上面说的如果使用cmake直接进行配置,执行make编译会出现’nvcc fatal : Unsupported gpu architecture ‘compute_11’的错误,主要是cmake配置默认会把gpu和cuda选项选择上,但好像在这里的环境下opencv编译gpu和cuda一直不成功(当然也有人成功,不知道为什么),所以使用cmake-gui命令选择不安装gpu和cuda。不安装gpu和cuda对后面的工作也没有影响。

找不到cv2.so

要编译opencv_python,需要依赖numpy库,必须保证在编译opencv的时候配置文件识别到要使用的python的numpy库,如下图,可以出现BUILD_opencv_python和PYTHON_NUMPY_INCLUDER_DIR选项(这是自动识别出来的,你要系统默认的python库中安装了numpy就可以了),这样就能正常的编译出cv2.so。如果不能正确的找到numpy库,需要先安装好numpy,否则编译不出来cv2.so。

OpenCV编译、安装、测试相关推荐

  1. 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试

    [网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...

  2. OpenCV编译安装

    最近重新开始使用opencv-cpp,有些项目需要的是OpenCV2,有些需要多是OpenCV3,这两个版本的如何共存是个值得研究多问题.这里记录一次OpenCV3和2的安装过程. 安装OpenCV3 ...

  3. opencv 编译安装时出现报错 modules/videoio/src/cap_ffmpeg_impl.hpp:585:34: error: ‘AVStream {aka struct AVStre

    目录 1. 报错 2. 报错原因 3. 卸载当前ffmpeg 3.1. 卸载apt安装的ffmpeg 3.2. 卸载编译安装的ffmpeg 4. 编译安装ffmpeg 4.3 4.1. 下载安装包 4 ...

  4. Win10 OpenCV编译安装CUDA版本

    Win10 + Microsoft Visual Studio Community 2017 + CUDA11.3 + CUDNN8.2 + RTX GeForce 3090 + OpenCV4.5. ...

  5. Linux —— OpenCv编译安装

    背景      在此之前本人使用OpenCv场景均在Windows系列系统下,那么也没有涉及到Cv加速部分,所以在该系统下OpenCv都是直接使用官方编译好的Release版本.而偶尔的在Ubuntu ...

  6. lammps 编译安装测试说明

    科学计算软件编译安装测试方法说明 --- lammps 篇 (提供免费测试) 官网地址:http://lammps.sandia.gov/ 下载最新稳定版本:http://lammps.sandia. ...

  7. OpenCV 编译安装教程

    原创:PinkFeet 本文全程科学上网. 传统视觉算法时代,GPU 的作用没有现在明显.近些年来,随着深度学习方法崛起,卷积神经网络模块被嵌入到了 OpenCV,加上特定任务场景下的需求,GPU 的 ...

  8. qemu学习笔记1之编译安装测试

    发行版本直接命令安装 Arch: pacman -S qemu Debian/Ubuntu: apt-get install qemu Fedora: dnf install @virtualizat ...

  9. OpenCV 编译 - Unable to locate package libjasper-dev

    opencv编译安装 问题描述:Unable to locate package libjasper-dev a. apt-get install software-properties-common ...

  10. Cartographer ROS编译安装

    文章目录 Cartographer ROS编译安装 测试Cartographer环境 安装gmapping比较简单,一条命令 (sudo apt install ros-noetic-gmapping ...

最新文章

  1. 时间序列、时间序列分析、时间序列效应分解、平稳时间序列、AIC和BIC
  2. 如何禁止使用本地administrator进行共享连接
  3. qpython3下载-QPython3
  4. div垂直水平居中经常使用的方法
  5. vue 获取当前位置 高德_vue高德地图获取当前位置
  6. swift html转义,swift中webview的URL带中文或者特殊字符的处理
  7. FreeMarker基础语法教程
  8. 百思不得姐第4天:文本框占位文字颜色
  9. Jmeter录制app脚本
  10. java开发指南_Java 12新功能完整指南
  11. Mongodb常规操作【一】
  12. php打印函数console,PHP内置Web Server探究(2)自定义PHP控制台输出console函数
  13. Order By后产生NULL的问题
  14. 12-【istio】-【流量管理】-【流量管理原理】istio Sidecar的两种注入方式、注入原理
  15. 计算机专业术语,收藏用
  16. 如果把编程语言比作是一件武器……
  17. 华为S5700交换机登录认证配置学习笔记
  18. 志在必得的。。。。失败。。。
  19. [机器学习]三行代码快速划分交叉训练中训练集和验证集
  20. 自定义通信协议设计之TLV编码应用

热门文章

  1. C程序设计语言(第2版)简单读书笔记
  2. Jenkins 构建触发器操作详解
  3. spring读取jdbc(file方式)
  4. InfluxDB读写性能测试
  5. Android 贝塞尔曲线
  6. [转载] C#面向对象设计模式纵横谈——11. Facede外观模式
  7. 在主函数中输入10个等长的字符串。用另一函数对他们排序
  8. BUAA OO 2019 第一单元作业总结
  9. 【题解】CF#713 E-Sonya Partymaker
  10. P4145 上帝造题的七分钟2 / BZOJ3211花神游历各国