去年的某个时候,在学习贾志刚老师OpenCv教程的过程中,我开始对Linux系统中运行Python+OpenCv来了兴趣,正好又在熟悉统信UOS中,于是乎就设想着用UOS系统运行一下Python+OpenCv吧。那就说干就干,走起!

然而,过程是非常艰难的,我不是计算机科班出生,所有的知识都是通过网络学来的,经验和结果都是不断试错出得来的,所以,您要是大佬的话,下面所有的内容您就别看了,怕您笑话啦。这两天终于把这个系统搭建成功了,于是赶紧记录下来,给自己做个备忘,也供有同样想法的朋友做个参考吧。见笑啦!

我用的系统是统信UOS个人桌面版V20,有空闲的电脑,就没有用虚拟机(用虚拟机也是同样的情况)。系统安装好、激活,系统更新(其实更不更新都行,只是安装好了之后,更新的时间要比下载opencv等部件的时间要少得多,所以就更新了),打开开发者模式。如果没有打开开发者模式的话,连anacond都正常安装不了的。当然了,我还尝试着用过银河麒麟、深度社区版、ubuntu18,其实遇到的问题都差不多,最后还是踏踏实实在UOS 上摸索试错吧。好在经过数月的跌跌撞撞,最终还是搭建成了,可以正常运行了。好开心,哈哈...

一、下载文件

https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/  清华大学开源软件镜像站

通过上面这个网站下载anacond安装文件: Anaconda3-2018.12-Linux-x86_64.sh 。在搭建的过程中,我还下载过Anaconda3-2020.10-Linux-x86_64.sh 和 Anaconda3-2021.04-Linux-x86_64.sh ,这两个最终都没有成功,原因是Python的版本是3.8,好像没有能正常匹配python版的opencv。而Anaconda3-2018.12-Linux-x86_64.sh 的Python版本是3.7,有适配的Python版的opencv,请您不要再走我的弯路 。在这个过程中我学习的网址是(  Anaconda: Linux下安装Anaconda )。

二、安装anacond

下载完成后,在 Downloads(下载)文件夹下(下载后的Anaconda3-2018.12-Linux-x86_64.sh文件在的文件夹),空白处右键选择“在终端中打开”,然后输入:

bash  Anaconda3-2018.12-Linux-x86_64.sh 
然后一路回车,一路“yes”。最后输入以下两行命令:
      source ~/.bashrc
      conda --version
屏幕上显示:
(base) EmptyBowl@EB-PC:~$ conda --version

conda 4.5.10   (好像是这个版本号,sorry,很不严谨,不过只要出现版本号就表示anacond安装成功啦!哈哈)

这个时候,在系统的文件管理的主目录里面,会有一个 anaconda3 文件夹,占空间6G以上,这个就是安装好的anacond所在文件夹。

三、安装anacond自认的opencv插件

在上一步的终端窗口中,接着输入命令:

      anaconda-navigator

这里要注意,有时候打开终端后输入这个命令,anacond界面未响应,并有一些提示(抱歉,我英语很菜的,不认识),主要是命令行最前面没有(base),如 EmptyBowl@EB-PC:~$  。这个时候就需要连输入以下两行命令:

source ~/anaconda3/bin/activate root
      anaconda-navigator

这时候,命令行一定是带(base) 的,如 (base) EmptyBowl@EB-PC:~$  。并且,andcond 也开始启动啦。在刚才这个过程中我学习的网址是(  Linux中 anaconda 启动其终端命令行)。

1.在启动后的anacond界面的最左边点击 Environments , installed 下拉框中选择 all  ,最右侧框中输入 opencv ,下方界面出现liboopencv、opencv、py-opencv三个待选项(版本好像都是3.4.2)(一定会出现的,如果空白,说明网速不行,要多试几次),都选上,右下角有绿色的 Apply ,点击。等待一段时间后,屏幕中间的小窗口右下角出现绿色 Apply 后,点击。这一步需要等待了,要看网速了,不一定什么时候网速快,傍晚、凌晨、半夜、上班时间...... 自己试验吧,最终会下载完的。

2.上一步完成后,anacond界面中会再多出现一个 r-opencv 的选项框,依然是选择,Apply,等待,Apply。重复上一步操作,直到liboopencv、opencv、py-opencv、r-opencv四个前面的待选框全都变绿,都下载完成后,OK。

在这个过程和上一个过程完成后,会出现anacond.navigator由1.19.x 升级到 2.0.5 版本的提示,依照提示完成升级。如果此时在终端查看anacond版本(用命令:conda --version),会显示 conda 4.10.1  的返回值。

3.不换终端窗口,删除刚才下载的opencv。请不要骂我(——好容易下载完,又TM的要删掉,有毛病啊?),不好意思,因为在专业知识和英语上我很菜的,我曾经试了好多次,必须如此操作,先装后删,才能成功。

输入以下命令:
      conda list opencv
显示结果:
(base) EmptyBowl@EB-PC:~/Downloads$ conda list opencv
 # packages in environment at /home/EmptyBowl/anaconda3:
 #
 # Name                    Version                   Build  Channel
 libopencv                 3.4.2                hb342d67_1  
 opencv                    3.4.2            py37h6fd60c2_1  
 py-opencv                 3.4.2            py37hb342d67_1  
 r-opencv                  0.1               r36h29659fb_0  输入命令:
      conda uninstall libopencv

等一会,出现很长篇幅的应该是部件名称吧,后面直到出现: Proceed ([y]/n)? y  输入 y  回车,下面,会有261个左右程序或部件的下载过程...... 等着吧,下载的速度还是依照时间段有所不同,和前面遇到的一样,还是自己试一下吧。直到出现 (base) EmptyBowl@EB-PC:~/Downloads$  ,哈哈,结束。这时候再输入 conda list opencv ,查找anacond当中的opencv插件情况,返回值就为空了,卸载anacond默认opencv组件完成。本过程和下一个过程我学习的网址是( http://www.likecs.com/show-81861.html  linux/ubuntu下最简单好用的python opencv安装教程 ( 解决 imshow, SIFT, SURF, CSRT使用问题) )。

在这里我想要说说自己的思考,可能就是这样下载anacond默认opencv组件后又删除的过程当中,通过anacond.navigator版本升级、以及这个步骤当中二百多个程序或部件的安装,确保了好多必须的程序或部件都安装好了,不会再出现imshow()等不能实现的情况了。再一个,如果没有这样的操作,在进行下一步安装真正可用的opencv部件命令的时候,会下载一个文件类型为 *.tar.gz ,大小在148M的不能使用的文件,而下一个步骤中,成功安装的文件类型为 *.whl ,文件大小57M。

4.最终的目的:安装真正可用的opencv部件。输入命令:

pip install opencv-contrib-python
当然,也可以输入命令:
      pip install opencv-python

好了,等着吧,只要能用,安装那个都行的,哈哈......  最终成功了,喜不自禁的把最终显示的代码复制粘贴下来了。    

(base) EmptyBowl@EB-PC:~/Downloads$ pip install opencv-contrib-python
 Collecting opencv-contrib-python
   Downloading opencv_contrib_python-4.5.2.52-cp37-cp37m-manylinux2014_x86_64.whl (57.4 MB)
      |████████████████████████████████| 57.4 MB 29 kB/s 
 Requirement already satisfied: numpy>=1.14.5 in /home/EmptyBowl/anaconda3/lib/python3.7/site-packages (from opencv-contrib-python) (1.20.1)
 Installing collected packages: opencv-contrib-python
 Successfully installed opencv-contrib-python-4.5.2.52
 (base) EmptyBowl@EB-PC:~/Downloads$

查看了一下,确实安装进去了。好了,成了

(base) EmptyBowl@EB-PC:~/Downloads$ conda list opencv
 # packages in environment at /home/EmptyBowl/anaconda3:
 #
 # Name                    Version                   Build  Channel
 opencv-contrib-python     4.5.2.52                 pypi_0    pypi
 (base) EmptyBowl@EB-PC:~/Downloads$

四、代码测试

用anacond当中的jupyter或Spyder,都能实现,成功!哈哈...

具体测试代码就不附了,自己本身学得就很肤浅,不能再班门弄斧了。

向文中引用网址的博主表示感谢!向其他博主同样表示感谢!