智能硬件与机器视觉:基于树莓派、Python和OpenCV
上QQ阅读APP看书,第一时间看更新

3.2.6 可能遇到的问题

1.如何将系统文件烧录至SD卡

准备一张空的16GB或者32GB的Micro-SD卡,通过读卡器接到电脑上。使用Etcher将下载好的Raspbian Stretch OS映像文件烧录到存储卡,Etcher可以在Windows、Linux以及macOS上运行。烧录完成后将存储卡插入树莓派的卡槽中,启动树莓派即可开始配置系统。

2.可以使用Python 2.7来安装吗

可以但不推荐,因为Python 2.7即将被抛弃,Python 3是目前的标准。如果执意使用Python 2.7安装,需要对之前的安装步骤做一些修改。

首先安装Python 2.7:


 $ sudo apt-get install python2.7 python2.7-dev

在创建虚拟环境之前,首先安装Python 2.7版本的pip工具:


 $ sudo python2.7 get-pip.py

同样是在创建虚拟环境时,也要修改相应的选项:


 $ mkvirtualenv py2cv4 -p python2.7

其他步骤与使用Python 3相同。

3.可以使用pip直接安装OpenCV 4

未来是可以的,但是在PiWheels推出OpenCV 4二进制文件库之前,我们还是需要下载源码并编译。

4.可以使用apt-get来安装OpenCV 4吗

强烈建议不要试图使用apt-get来安装OpenCV 4(即使这条命令可以使用)。首先,apt-get目前还不支持OpenCV 4的安装,此外,这也不方便我们使用虚拟环境管理不同版本的软件包,你也无法控制OpenCV 4的构建和编译。

5.使用mkvirtualenv或workon命令时,终端提示“command not found”

出现这种情况有以下几个原因:

1)首先确认一下是否正确使用pip安装了virtualenv和virtualenvwrapper。在终端中使用命令pip freeze,查看virtualenv和virtualenvwrapper是否在已安装的列表中。

2)检查~/.profile中是否有错误。检查在文件中是否正确使用了source和export命令,需要添加在文件中的语句是否正确添加。

3)不要忘记在编辑完之后执行命令source ~/.profile。

6.打开一个新终端或者重启树莓派以后,无法使用mkvirtualenv或workon命令

如果你使用树莓派的桌面,这种情况确实有可能发生。当打开一个终端时,会执行默认的profile文件,而不是执行我们修改以后的文件。请参考上一个问题的第2步和第3步。使用SSH连接树莓派时一般不会遇到这个问题。

7.在使用时,报错“Import Erorr:No module named cv2”

出现这种情况的原因有很多,这里列出几条供参考:

1)确认已经通过workon命令切换到了对应的虚拟环境中,如果workon命令出错,检查是否正确安装了virtualenv和virtualenvwrapper。

2)检查py3cv4的site-packages中的内容。site-packages的路径是~/.virtualenvs/cv/lib/python3.5/site-packages/(具体的路径和Python版本与虚拟环境名字有关,建议使用Tab自动补全)。确认这个目录下有cv2的链接文件且被正确链接。

3)检查系统中Python的全局路径/usr/local/python,这里应当有cv2文件夹。

4)如果前两步出现错误,把目录切换至~/opencv/build/lib,如果之前的CMake和编译过程没有报错的话,这里应当有cv2文件夹,将它复制到/usr/local/python,并把.so文件和py3cv4虚拟环境的site-package进行链接。