1.简介
Ciclop是西班牙BQ公司开源的一个DIY 3D扫描仪Horus则是配套开发的3D扫描软件。这款Ciclop是完全开源的,该公司甚至把有关这台3D扫描仪的所有相关机械设计、电子、软件、算法、数学和进行的测试都公布在了开源社区上,任何有兴趣的人都可以跟着构建出自己的3D扫描仪,并使用软件对其进行测试。源文件可以从github上获得。
2.获取源码
3.开发环境
UBNUTU16:
官方的文档中有对ubuntu下开发的帮助,我这里与官方的有些不一样
1.安装必要的包
sudo apt-get install python-serial python-opengl python-pyglet python-numpy python-scipy python-matplotlib
sudo apt-get install python-wxgtk3.0
sudo apt-get install avrdude #这是为给arduino下载代码
sudo apt-get install python-opencv #虽然horus推荐ppa仓库中的opencv,但apt下载的opencv也可以用,当然自己编译也可以
sudo apt-get install v4l-utils
除此之外还要有一个 horus 库,后经过分析其实并不需要,但还是先安装上,官方文档中给的是添加 ppa仓库,因为是国外的网站,添加很容易失败,故直接从仓库中下载安装包
2.安装好后再执行:
cd horus
python horus
Windows10:
官方文档中并未给出windows下的开发方式,分析源码后发现开发其实只需要有python环境即可,至于horus
库,观察代码结构后其实就在源码之中,位于 src
文件夹中,主程序位于 horus
中 ,这是一个python文件,但它给的源码中却不是 .py 文件.
当我用pycharm 从当前文件夹中创建工程,点击运行,不出所料,果然运行不了,之后就是各种坑。
1. 无法导入horus库
代码中是有切换路径的过程
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "src"))
from horus.util import resources
可是运行后除了第一个可以引用其他的都无法引用,很显然并没有起作用。在不改动代码的情况下找到了一个绝佳的解决办法,就是在环境变量中添加模块路径,这里我并不是在windows中直接添加,而是在pycharm中添加:
点击 运行
> 编辑配置
可以看到pycharm中是有关于环境变量的配置的,在Envitonment variables
中添加src
的目录:
PYTHONPATH=\horus路径\
重新打开工程就能顺利导入了
2.opengl库异常
百度上有人说是 glut.h、glut64.dll、glut64.lib 缺失,测试过后不行,后来搞清楚这是因为我用 conda 下载的pyopengl库是32位的,而系统需要64的才行,到 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 中找到 amd64的安装包,一定要下python2的
3.wx库异常
这是由于我用conda下载的库版本与所需不同导致函数无法引用,百度上说不同的版本函数有变。我又打开ubuntu 查看wxpython的版本,果然ubuntu上的是 3.0.2.0 ,而anaconda 中的是4.0 ,问题显而易见了,
这里把原来的wxpython 删掉 ,重新搜索,只有一个3.0的版本
conda remove wxpython
conda search wxpython
conda install wxpython==3.0
安装好后运行成功!