OpenCV编译、安装、测试
简介
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编译、安装、测试相关推荐
- 【网络通信 -- SIP 电话】项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试
[网络通信 -- SIP 电话]项目实战记录 -- SIP 服务器 OPENSIPS 搭建测试与 SIP 客户端 PJSIP 编译安装测试 [1]SIP 服务器 OPENSIPS 搭建 1.1 安装环 ...
- OpenCV编译安装
最近重新开始使用opencv-cpp,有些项目需要的是OpenCV2,有些需要多是OpenCV3,这两个版本的如何共存是个值得研究多问题.这里记录一次OpenCV3和2的安装过程. 安装OpenCV3 ...
- 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 ...
- Win10 OpenCV编译安装CUDA版本
Win10 + Microsoft Visual Studio Community 2017 + CUDA11.3 + CUDNN8.2 + RTX GeForce 3090 + OpenCV4.5. ...
- Linux —— OpenCv编译安装
背景 在此之前本人使用OpenCv场景均在Windows系列系统下,那么也没有涉及到Cv加速部分,所以在该系统下OpenCv都是直接使用官方编译好的Release版本.而偶尔的在Ubuntu ...
- lammps 编译安装测试说明
科学计算软件编译安装测试方法说明 --- lammps 篇 (提供免费测试) 官网地址:http://lammps.sandia.gov/ 下载最新稳定版本:http://lammps.sandia. ...
- OpenCV 编译安装教程
原创:PinkFeet 本文全程科学上网. 传统视觉算法时代,GPU 的作用没有现在明显.近些年来,随着深度学习方法崛起,卷积神经网络模块被嵌入到了 OpenCV,加上特定任务场景下的需求,GPU 的 ...
- qemu学习笔记1之编译安装测试
发行版本直接命令安装 Arch: pacman -S qemu Debian/Ubuntu: apt-get install qemu Fedora: dnf install @virtualizat ...
- OpenCV 编译 - Unable to locate package libjasper-dev
opencv编译安装 问题描述:Unable to locate package libjasper-dev a. apt-get install software-properties-common ...
- Cartographer ROS编译安装
文章目录 Cartographer ROS编译安装 测试Cartographer环境 安装gmapping比较简单,一条命令 (sudo apt install ros-noetic-gmapping ...
最新文章
- 时间序列、时间序列分析、时间序列效应分解、平稳时间序列、AIC和BIC
- 如何禁止使用本地administrator进行共享连接
- qpython3下载-QPython3
- div垂直水平居中经常使用的方法
- vue 获取当前位置 高德_vue高德地图获取当前位置
- swift html转义,swift中webview的URL带中文或者特殊字符的处理
- FreeMarker基础语法教程
- 百思不得姐第4天:文本框占位文字颜色
- Jmeter录制app脚本
- java开发指南_Java 12新功能完整指南
- Mongodb常规操作【一】
- php打印函数console,PHP内置Web Server探究(2)自定义PHP控制台输出console函数
- Order By后产生NULL的问题
- 12-【istio】-【流量管理】-【流量管理原理】istio Sidecar的两种注入方式、注入原理
- 计算机专业术语,收藏用
- 如果把编程语言比作是一件武器……
- 华为S5700交换机登录认证配置学习笔记
- 志在必得的。。。。失败。。。
- [机器学习]三行代码快速划分交叉训练中训练集和验证集
- 自定义通信协议设计之TLV编码应用