重点是避坑和坑!
原来收藏过一篇用树莓派+Python+OpenCV实现监控和动作检测的中文翻译文章,原文和译文写得可读性都很不错。可惜原文已经404了,只好找了两个转载的当备份
https://blog.ggrarea.cn/archives/1807.html
以及
其中的完整Python代码可以在
https://gist.github.com/vishvanand/60afc7b998d885df66e9c4f07cf57ab0
获得(代码和原文有区别,请直接到原文复制代码吧)
想起来搞这个是因为最近想学点新的东西,又想利用把吃灰的树莓派2B利用起来,就去买了摄像头。
然后就开始了不断的踩坑和填坑……&(%&……¥%%……¥%……
升级PIP
参照文档第一步pip install imutils
和pip install opencv-python
就失败了,树莓派上的pip太老了,要升级。但是pip install pip -U
的方式自升级也不能成功。通过apt卸载再安装也依旧是之前的pip版本。
最后的成功的方案是apt remove python-pip
卸载,然后通过官方get-pip.py脚本安装成功。这中间又碰到了系统中ca-bundle太老,不能信任很多服务端证书的问题。
最后使用pip install --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python
的方式可以信任证书(这个方式适用于版本 >= 20.x 的pip。另外,这里–trusted-host后面跟的是已配置的pypi源地址)
安装OpenCV
事情还没完,你以为pip install --trusted-host pypi.tuna.tsinghua.edu.cn opencv-python
就能成功安装opencv了吗?那你就too young了。
有一个事情是NumPy(OpenCV的依赖包)停止了对Python 2.x的支持,要安装也得用pip3 install opencv-python
。
再看看这编译日志,抠脚想象树莓派2B的性能(等了半天,我想连上4B去安装试试,结果后开始的4B进度比2B快,先跳Installing build dependencies
无意间看到有另外一个方法可以安装OpenCV,就是通过apt-get install python-opencv
,结果秒秒钟完成……
进入交互式的Python CLI,执行前面几个import都不报错了,差点哭了……