随着使用树莓派的经验越来越丰富,自然而然地想要更近一步的发挥树莓派的作用,例如实现图像识别功能,这是当前非常热门的领域,为此我查阅了相关资料,知道了OpenCV是最流行的算法库,正好我从图书馆找到一本相当经典的书
——《OpenCV 3计算机视觉 Python语言实现》,该书侧重于工程应用,因此不需要太深的图像专业知识,我打算花一段时间学习一下。

如果是要学习入门,可以在Windows上安装Python的Windows版,并下载OpenCV库进行安装配置,具体的步骤可以参考网络资料,但是Windows上安装OpenCV有点要看人品,安装或配置失败是大概率事件,尤其是OpenCV-Contrib模块的安装特别麻烦,我搞了两天都没成功。所以比较稳妥的方法还是用虚拟机装一个Linux系统,在Linux系统上安装问题会少一些。

至于在树莓派上安装OpenCV,我主要参考了这篇博客:https://www.cnblogs.com/zjutlitao/archive/2018/01/12/8261688.html,写的比较详细,然而我最终也没完全安装成功,只是将OpenCV与Python2绑定,Python3识别不到。安装过程我遇到“libgtk2.0-dev”无法安装的情况,我的解决方法是更换软件源,参考http://blog.csdn.net/la9998372/article/details/77886806,这里的版本是stretch,是最新的Debian版本。因为我在树莓派上安装OpenCV-Contrib成功,在电脑上失败了,所以当涉及到人脸识别等高级功能时就必须得用树莓派了。

3月18日更新:
①按照上面给出的链接教程,安装的是OpenCV-3.1.0版本,3.1版本的源码存在一个bug,当使用cv2.xfeatures2d中的一些匹配算法时,会出现cv2.error: cv2.cpp:161: error: (-215) The data should normally be NULL! in function allocate的错误,解决方法是在下载的OpenCV源码中进行修改,将“./opencv-3.1.0/modules/python/src2/cv2.cpp”文件中第163行中的CV_Error(Error::StsAssert, "The data should normally be NULL!");注释掉,再重新编译和安装OpenCV
②如果想用OpenCV3.1版本应用SVM,需要注意OpenCV实现了save接口用于保存SVM模型数据,但是相应的load接口却并未实现。