怎么说呢 ,这是我第一次在Ubuntu系统上搭建opencv环境,期间遇到了相当多的问题,从上周五一直搞到周末,花了整整两天都没搞好,心态直接爆炸啊!!!今天决定在Windows上安装anaconda3,一次跑起来。也突然从中获取到了灵感,然后打算在搞最后以下,结果真的在Ubuntu下安装成功了!
到官网下载Ubuntu系统的anaconda3安装包,->链接点此
这是我选择安装的版本,如果Ubuntu下载速度比较慢,可以在Windows系统下载好,然后通过虚拟机的[共享文件夹]cp到Ubuntu桌面(其实哪个路径都行啦…)
由于时间问题,共享文件夹的教程可以自己找“度娘”,一搜一大堆。
按照上图——进入安装包的所在目录,解压安装包
dsk@DSK:~$ bash Anaconda3-2020.07-Linux-x86_64.sh
接下来全选Y或者Enter键
出现以上界面或有“MORE”时按“q”快速跳过
…
出现以上内容表明安装成功!
在安装路径查看.bashrc文件,ls指令看不到就用ls -a
打开.bashrc
文件
在末尾添加以下代码
export PPATH="/home/用户名/anaconda3/bin:$PATH" #追加上anaconda3的安装路径
dsk@DSK:~$ source ~/.bashrc
现在就可以查看conda及python的版本号了
打开或创建.condarc
文件
dsk@DSK:~$ vim ~/.condarc
如果出现红框提示,请安装vi编辑器(黄框指令),没有请忽略
打开文件后添加以下内容:
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
ssl_verify: true
//退出insert(插入)模式
:wq 保存并退出
dsk@DSK:~$ conda create -n ai-learn368 python=3.6.8
其中ai-learn368
为你要创建的环境名称,后面加上环境版本号,以便于后期多版本的安装和使用。python=3.6.8
为你要安装的python的版本,在这里我们选择3.6.8
版本,3.8.3
版本好像会出问题。
确认指令提示全选yes或者y。
1:进入刚刚配置的python环境
2:查看该环境下python的版本
发现该版本和我们安装的版本是一致的
(ai-learn368) dsk@DSK:~$ pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple
#该步骤尽量不要在opencv-python后面追加详细的版本号,不然在后期的项目运行中很可能会出现问题,
#我之前就是添加了详细的版本号出了很多的问题,直接被搞
出现以上提示表明安装成功,还有详细的opencv-python的版本号。
用国内源下载地址
pip install labelme -i https://mirrors.aliyun.com/pypi/simple
#也不要在labelme后面追加详细的版本号,不然也可能遇到坑。。
1:新建一个文件夹(将项目文件放到该 目录)
2:进入文件夹
3:进入项目文件
ls
后可见.py
文件
4:运行一个.py
文件
运行后系统提示如下
[ WARN:0] global /tmp/pip-req-build-6amqbhlx/opencv/modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
报错的意思是摄像头打不开啊或者说是找不到设备
我在博客上找了很多教程,但是如果只把.py
文件中的cv.VideoCapture(args.input if args.input else 0)
改为cv.VideoCapture(0)
或者-1、1等,只能解决部分人遇到的问题。
解决办法一:
我们先打开device目录,看有没有我们摄像头设备
(ai-learn368) dsk@DSK:~/myDocument/human-pose-estimation-opencv$ ls /dev/
查询结果如下:
我们发现以v
字符开头的设备中并没有与摄像头有关的信息。
解决办法:
我又在度娘上搜了一下相关的问题,找到了有效的解决办法
主要原因是没有启动 虚拟机->可移动设备->关于摄像头设备的选项
我用的是虚拟机是Vmware Workstation 16 Player,相关操作如下
第4步之后,点击[确定]
其版本的虚拟机也都一样,只是按键位置不一样而已,耐心找一下。
这个时候我们在查看以下
这个时候和第一次ls /dev/ 目录就会明显的发现多了video0和video1的设备项
这个时候我们就可以通过修改上面提到的.py
文件的cv.VideoCapture(0)
括号里的值来启动摄像头设备了,值赋值为0或1。
这个时候我们调用指令运行一下⬇(允许我打个马赛克)
成功运行!!!!!
注意
如果已经可见video0和vedio1设备但还是调不了摄像头的解决办法
打开虚拟机设置
在USB兼容性选项里进行版本的切换,2不行就3,3不行就2…
哈哈,一开始安装的时候就是这个问题。直接把我搞吐,问题就出现在安装OpenCV-Python和labelme的时候追加了详细的版本号,从而导致了和 python环境不一样的愿意吧!除此之外,还会出现别的问题,具体记不太清了。
解决办法
pip install opencv-python
执行一遍,如果编译.py
还是这样就看下一条;通过和前俩天安装失败的经历相比较,在整个的安装过程中,最重要的是要注意版本的问题。我上周末用了两天的时间来搭建环境都没有搞定,就是因为在安装的时候追加了详细的版本号(可能导致两个应用之间无法进行完好的版本对接)导致#ModuleNotFoundError: No module named ‘cv2’
等问题的出现(即使用pip install opencv-python
指令也没用)。
希望这篇博客对你有所帮助。。。
第一次写博客,有错误欢迎纠正,有问题也可以一起讨论。
项目文件加Q:2544867557