【opencv】1.opencv安装、编译、运行等踩坑记录
1.安装python2环境下opencv2.4.9安装不成功的解决方法
2.查看linux下的各种安装库的安装位置和版本,以opencv为例
3.cmake与g++: opencv之在Linux下编译 opencv 程序的两种方式
4.安装Python版opencv使用国内镜像下载方法
5.python3中无法import cv2,importError
1.安装python2环境下opencv2.4.9安装不成功的解决方法
由于之前安装过opencv3.xx版本,在安装python2环境下opencv2.4.9时候会出错,安装不成功。
解决方法:
进入python2,然后:
import cv2
cv2.__version__
cv2.__file__ ##查看CV2模块的路径
cv2.__file__
查看CV2模块的路径,会得到类似于"/usr/lib/python2.7/dist-packages/cv2.x86_64-linux-gnu.so"的文件,
把该.so文件删除之后,再使用Ubuntu默认仓库中的OpenCV来安装:sudo apt-get install python-opencv
,就会自动安装2.4.9版本的opencv(由于Ubuntu默认仓库版本旧,不支持Python3,所以安装的是2.4.9而不是opencv3.x.x)。
并且只影响python2环境下的cv2版本,python2环境下的opencv版本变为了2.4.9,python3环境下的opencv版本依然是3.4.0。
2.查看linux下的各种安装库的安装位置和版本,以opencv为例
参考:https://blog.csdn.net/zhenguo26/article/details/79627232
pkg-config 是一个查询 通过源码编译安装 的第三方库的工具。
查看linux下的opencv安装库:
pkg-config opencv --libs
查看linux下的opencv安装版本,也可以用来查看别的库的版本,不限于opencv:
pkg-config opencv --modversion
或者
pkg-config --modversion opencv
查看linux下的opencv安装路径:
sudo find / -iname "*opencv*"
在全盘上不区分大小写,搜索带有关键字opencv的所有文件及文件夹都会输出到终端,如果输出太长建议输出到txt文件里查看,如下:
sudo find / -iname "*opencv*" > /home/ubuntu/Desktop/opencv_find.txt
3.cmake与g++: opencv之在Linux下编译opencv程序的两种方式
参考:https://blog.csdn.net/keith_bb/article/details/52864851
// test.cc
#include <iostream>
#include <opencv2/opencv.hpp> //无论opencv2还是opencv3,他们的头文件都是这样包含using namespace std;
using namespace cv;int main()
{Mat srcImage = imread("lena.jpg");imshow("源图像",srcImage);waitKey(0);return 0;
}
(1)g++编译
g++ test.cc -o test ##### 如果源码不包含第三方库,这句话会生成一个可执行文件./test,但是由于头文件使用了第三方库opencv库,因此执行这句话会出错;
其中test.cc
是要编译的文件名称,生成的可执行文件取名为test,如果编译多个cpp或cc文件,可用如下方法:
比如在test.cc
代码中使用到了(在hello.h
声明)在hello.cc
中实现的函数,(test.cc
中也包含了hello.h
头文件),那么可以这么编译:
g++ hello.cc test.cc -o test
上面这句话会生成一个可执行文件./test,但是由于头文件使用了第三方库opencv库,所以直接这么编译会出错,需要使用
g++ `pkg-config opencv --cflags` test.cc -o test `pkg-config opencv --libs` //一定要严格遵照这样的顺序写
然后就可以使用 ./test
来运行程序了。对于需要输入命令行参数的,其形式类似与 ./test arg1 arg2
(2)使用cmake编译OpenCV文件
可以参考下面这两个博客来了解 cmake 的完整用法
https://www.hahack.com/codes/cmake/
http://www.renlei.co/article/182.html
首先确保已经安装了cmake,然后建立一个CMakeLists.txt文件,CMakeLists.txt文件中的具体内容如下(注:CMakeLists.txt文件你可以到你的OpenCV源代码解压出来的文件夹下的opencv-2版本的/samples/c/example_cmake/
或者opencv-3版本的/samples/cpp/example_cmake/
文件夹下拷过来,然后再做修改):
PROJECT(Example) //这是建立一个工程项目(类似于我们VS中建立C++项目一样),括号里面时工程名,工程名我们可以任意给,最后程序编译出来的可执行文件就是这个名字CMAKE_MINIMUM_REQUIRED(VERSION 2.6) //这是对CMake工具最低版本要求,这里我们要检查下我们的CMake工具的版本信息,我们可以使用命令“cmake --version”查看
if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)FIND_PACKAGE( OpenCV REQUIRED ) //这是cmake用来查找opencv包用的,不用改# Declare the target (an executable)
ADD_EXECUTABLE(Example Image_show.c) //这里括号里面的两个参数分别是工程项目名和我们要编译文件名的意思,记住中间一空格键隔开TARGET_LINK_LIBRARIES(Example ${OpenCV_LIBS}) //这是我们链接到OpenCV库的环节,我们只要更改前面第一个参数位我们的工程项目名即可#MESSAGE(STATUS "OpenCV_LIBS: ${OpenCV_LIBS}") //好了,就修改这么点东西,保存,关闭。
更简短的版本可以看下面这个,都一样:
cmake_minimum_required(VERSION 2.8)
project(可执行文件名称)
find_package(OpenCV REQUIRED)
add_executable(可执行文件名称 源文件.cc)
target_link_libraries(可执行文件名称 ${OpenCV_LIBS})
project()
括号里面填写要生成的可执行文件名称,add_executable()
及target_link_libraries()
也一样。接下来执行:
cmake .
make
./可执行文件名
4.安装Python版opencv使用国内镜像下载方法
Python pip用国内镜像下载的办法及import cv2
原文地址:http://blog.csdn.net/u010536377/article/details/50564185
一直想在Ubuntu安装opencv,结果各种出错,现在有一个最简单的办法:
sudo pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ opencv-contrib-python
问题搞定。尤其是提示了问题ReadTimeoutError: HTTPSConnectionPool(host=‘pypi.python.org’, port=443): Read timed out.后,用国内镜像下载分分钟搞定。
5.python3中无法import cv2,importError
python3中无法import cv2
,出现以下情况
importError: /opt/ros/kinetic/lib/python2.7/dist-packages/cv2.so
解决办法:在你运行出错的那个Python文件中,在import sys
之后,import cv2
之前,加上一句sys.path.remove('/opt/ros/kinetic/lib/python2.7/dist-packages')
如果不能解决,更详细方案可参考 https://blog.csdn.net/shaoyou223/article/details/82862051
【opencv】1.opencv安装、编译、运行等踩坑记录相关推荐
- 几乎完美安装! NVIDIA Jetson Nano B01 Ubuntu 18.04.3 LTS 的 ROS 安装和菜鸟的踩坑记录【会继续完善】
几乎完美安装! NVIDIA Jetson Nano B01 Ubuntu 18.04.3 LTS 的 ROS 安装和菜鸟的踩坑记录 NVIDIA Jetson Nano B01技术规格 Ubuntu ...
- VS Code Python 代码智能提示(自动补全)编译环境设置踩坑记录
VS Code Python 编译环境设置踩坑记录 本菜鸡非常喜欢VS code的简洁风格,而且跟原来再用的VS2017相比简直不要太快,前段时间电脑重装之后又要在windows系统上重新搭建整套环境 ...
- STF环境搭建运行及踩坑记录
最初是在centos环境上搭建STF,由于种种依赖缺失.nodejs/npm版本不兼容.以及无解的"Segmentation fault (core dumped)"错误,最终还是 ...
- linux下安装mysql5.7.11全纪录_简单几步在Linux环境下安装MySQL5.7(附踩坑记录)
在Linux下安装MySQL可以说是每个开发者必备的知识 刚好我的服务器重装了一下 因此重新安装了MySQL 写下本文特此记录 下载MySQL的压缩包: 官网:https://dev.mysql.co ...
- 安装VM15搭建centos7踩坑记录。
项目经理又又又又又又又叕来找我做压测了,好吧这次连开发的机器都没法用了,因为开发也在用.上午问了一圈公司也没有16G内存的闲置电脑,所以明天只能把自己笔记本带来做服务器测试了.没法子,启动服务必须要1 ...
- flutter笔记1 VScode安装dart code插件踩坑记录
新手菜鸟一枚,想从产品转入技术坑,目标:移动端APP开发.最近听技术达人 飞狐 说flutter beta发布了,于是乎零基础入坑~话说想提高英文水平的同学,请移步flutter官网,从知道flutt ...
- python pip安装第三方库版本问题_python使用pip安装第三方库的踩坑记录
我安装第三方库的时候用:pip install 包名,然而各种安装不成功. 还有用pip命令明明安装成功了,但在pycham中导入此模块时提示没有此模块. 然后在百度各种查,各种配置path变量,复制 ...
- Ubuntu16.04安装K8s步骤和踩坑记录
文章目录 环境信息 安装步骤 系统配置修改 安装docker 安装kubectl,kubelet,kubeadm 配置Master 配置Node 部署结果检查 K8S部署mysql学习 新建mysql ...
- Ubuntu18.04安装pcl教程以及踩坑记录
参考教程:Ubuntu18.04安装PCL(详细教程)_一盆柠檬的博客-CSDN博客 1.安装依赖 sudo apt-get update sudo apt-get install git build ...
最新文章
- mysql存储过程_MySQL带out和inout模式参数的存储过程
- iis6.0怎么搭php,IIS6.0平台下PHP最佳配置方法
- 关注多云安全性的7个问题
- 实例教程二:短信发送器
- Java 扫描并加载包路径下class文件
- 机器人加锤石如何放技能q_ADC必须会躲4个技能,前两个训练走位,能躲图4的只有闪现!...
- Hibernate二级/查询缓存的陷阱
- 互补输出级采用共集形式是为了使_天津大学胡文平《先进材料》:溶液法制备厘米级高度取向有机晶体阵列,可用于高性能有机场效应晶体管...
- JQuery 函数 操作
- 【Top 50】中美人工智能高被引学者榜单:孙剑、何恺明、李飞飞进前5
- httpclient base64 文件上传_代码级别的上传下载神器
- 几何元素网页设计的力量,让人眼前一亮
- Spring框架中提取list集合类型属性注入
- 华为S5700S-52P-LI-AC千兆网管交换机web登录界面配置
- php reader oleread,请问用phpExcelReader方式,excel文件名字可以是中文吗?
- 广数系统u盘支持什么格式_数控车床编程导入u盘 数控车床u盘读不出来
- Mac开发-NSTextView软回车转换为硬回车
- c语言求成绩标准差,C语言中求和、计算平均值、方差和标准差的实例
- Unity项目-黑魂复刻(四)玩家控制器(翻滚以及跳跃操作改动)
- mxgraph进阶 三 Web绘图——mxGraph项目实战 精华篇
热门文章
- elasticSearch6源码分析(12)DiscoveryModule
- eBay的Elasticsearch性能调优实践
- 构建可靠的前端异常监控服务-采集篇
- Spring Boot启动过程源码分析--转
- Load Balance Tomcat with Nginx and Store Sessions in Redis--reference
- 机器学习Sklearn实战——KNN算法
- 【项目实战】P2P金融数据指标分析
- 信息革命的新世界正在到来,连睡觉都觉得浪费
- java面向对象思想如何理解
- Tomcat - 源码构建Tomcat 8.5.55 启动