OpenCV学习一《Linux下安装OpenCV》
第一步:安装源码前先安装好需要的第三⽅方环境
需要的编译环境 ■ [compiler] sudo apt-get install build-essential
# 注释说明
64位ubuntu在安装build-essential遇到依赖问题的解决办法
解决方案的博客地址:https://blog.csdn.net/sunranlb/article/details/46946147
依赖的库 ■ [required] sudo apt-get install cmake git libgtk2.0-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-22-dev
还有一点需要重要的特殊说明,就是在Ubuntu可视化界面操作的时候不要随便取消更新勾选中的东西,不然很容易出现问题!!!
将上传的两个OpenCV源码解压到 ~ 目录中
解压好后 依次执行以下的命令
cd opencv
mkdir build
cd build
最后执行编译命令
cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules/ -D CMAKE_INSTALL_PREFIX=/usr/local ..
出现这个结果的话 就表示成功的安装了
中间可能会遇到 下载一个文件下载不完的问题,只要将提前下载好的文件复制进去 即可解决这个问题
最后的一步
在 ~/opencv/build 中分别执行命令
make
sudo make install # 如果不加上sudo的话就会报一个权限的错误!
编辑配置文件
vim /etc/ld.so.conf
在下面一行加上
/usr/local/lib
重新加载配置
sudo ldconfig
检测OpenCV是否安装好的代码
test_opence.cpp
#include <opencv2/highgui/highgui.hpp>
int main(int argc,char* argv[]){
const std::string window_name = "lena";
const std::string input_pic = "lena.jpg";
cv::Mat test_pic = cv::imread(input_pic);
if(test_pic.empty()){
std::cout<<"no input image"<<std::endl;
return -1;
}
cv::namedWindow(window_name);
cv::imshow(window_name,test_pic);
cv::waitKey(0);
return 0;
}
编译代码
g++ -o test_opencv test_opencv.cpp -lopencv_core -lopencv_highgui -lopencv_imgcodecs
执行代码
./test_opencv.cpp
执行效果 ,如果出现lena.jpg 图 就证明安装成功!
- TensorFlow-4: tf.contrib.learn 快速入门
- TensorFlow-5: 用 tf.contrib.learn 来构建输入函数
- 前后端分离之vue2.0+webpack2 实战项目 -- html模板拼接
- 抛弃vue-resource拥抱axios
- TensorFlow-6-TensorBoard 可视化学习
- TensorFlow-7-TensorBoard Embedding可视化
- windows下nginx的安装及使用方法入门
- Scala Turtuial-容器(集合)类型
- Scala Turtuial-基本语法
- C++ Virtual And Pure Virtual Explained
- 搭建分布式Spark计算平台
- 像tomcat容器那样自定义一个 Classloader
- react+redux+webpack教程5
- TensorFlow-9-词的向量表示
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【前端进阶】深入浅出浏览器事件循环【内附练习题】
- 【面试说】一年半前端 Shopee 面经
- 【前端进阶】深入浅出 JavaScript 中的 this
- 手把手带你玩转 AWS Lambda
- Guava 中的 Stopwatch 是个什么鬼?
- Mybatis接口Mapper内的方法为啥不能重载?
- 基于K-Means聚类算法的主颜色提取
- 扩展之Tensorflow2.0 | 21 Keras的API详解(下)池化、Normalization层
- 一个真实问题,搞定三个冷门pandas函数
- conda管理C源代码程序的时候总是出现库文件冲突或者缺失
- 如何获取非模式生物KEGG PATHWAY的基因集并用clusterProfile做GSEA?
- 通过视频着色进行自监督跟踪
- Python爬虫:一些常用的爬虫技巧总结
- 带你用 Python 实现自动化群控(入门篇)
- Chrome终于上线这项重磅功能,中国用户苦等多年!