Ciclop horus源码编译

2023-11-02

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


安装好后运行成功!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ciclop horus源码编译 的相关文章

随机推荐

  • Java如何将文件下的所有文件进行批量更改和替换

    Java如何将文件下的所有文件进行批量更改和替换 将F盘下tmp文件夹下的文件循环取出 进行文件的替换 这里将李替换成1 修改完成写入到文件夹中 public class Test public static void main Strin
  • 高德地图内存泄露LocationManager$GnssStatusListenerTransport.mGnssCallback

    在使用高德地图的时候 喜提了一个内存泄露 GC Root Global variable in native code android location LocationManager GnssStatusListenerTransport
  • Altium Designer 详细入门教程-原理图绘画-AD2016

    这是我两年使用AD2016的总结和归纳 介绍AD2016原理图绘画的基本操作和比较高级的操作 主要面向0基础入门学习的爱好者 操作平台 win10 Altium Dsigner 2016 建议电脑使用屏幕较大的 因为有些对话框不太友好 或者
  • 【Android Jetpack系列】五、ViewModel和LiveData的使用

    ViewModel和LiveData的使用 时 摸 隔 鱼 了小半个月 终于开始了ViewModel和LiveData 首先 在开始之前 说明一下 什么是ViewModel 什么又是LiveData 什么是ViewModel 老套路 Vie
  • 利用Vulnhub复现漏洞 - Jenkins远程命令执行漏洞(CVE-2018-1000861)

    Jenkins远程命令执行漏洞 CVE 2018 1000861 Vulnhub官方复现教程 漏洞原理 复现过程 启动环境 漏洞复现 POC 检验 Vulnhub官方复现教程 https vulhub org environments je
  • idea修改 项目代码,浏览器页面不生效 解决方案

    使用快捷键ctrl shift delete 清理浏览器缓存 1 问题描述 idea修改前端项目代码 运行谷歌浏览器不起作用 我也试过 rebuild project 重启idea 等方法都不管用 再次运行谷歌浏览器 还是没有变化 2 尝试
  • “震撼你的前端技能:完整的前端面试指南”

    HTML基础 1 HTML 文件中的 DOCTYPE 是什么作用 HTML超文本标记语言 是一个标记语言 就有对应的语法标准 DOCTYPE 即 Document Type 网页文件的文档类型标准 主要作用是告诉浏览器的解析器要使用哪种 H
  • 八.AD域中启用用户和禁用用户

    c LDAP代码实现启用账户或禁用账户 这个功能单独拿出来写的原因可以猜猜 region 启用用户或禁用用户
  • Cesium Token申请

    一 什么是Cesium ion Cesium ion是一个提供瓦片图和3D地理空间数据的平台 支持把数据添加到用户自己的应用程序中 二 为什么需要access token 使用Cesium ion需要申请access token 当用户将数
  • How To Reload the SYS.DBMS_STATS Package (文档 ID 1310365.1)

    APPLIES TO Oracle Server Enterprise Edition Version 9 2 0 1 to 11 2 0 2 Release 9 2 to 11 2 Information in this document
  • springmvc+sitemesh2+freemarker整合

    1 背景 最近在搭建自己的springmvc sitemesh2 freemarker框架时 遇到了一个问题 就是sitemesh2整合springmvc时 springmvc没有正确的渲染sitemesh2的模板页面 在一番百度之后 发现
  • Springboot +tk.mybatis+generator 自动生成Mapper xml 插件配置及 常见 错误 MapperException 、BaseSelectProvider

    1 新建sprintboot项目 先把需要的 选项勾选上 如Mysql jdbc web mybatis 等你需要的 这是第一步 如果你需要配置tk mybatis 你需要额外的导入 新的jar包 以及 pom xml 的 build 中p
  • mybatis 注解传入 list 集合

    这里写一个查询的sql语句 第一种方式 首先看 mapper SelectProvider type SqlModel class method listDeviceIndex Results value Result column ind
  • Python 设计模式 - 适配器模式

    精通Python设计模式第二版 第 4 章 适配器模式 学习笔记 适配器模式 适配器模式是一种结构型设计模式 能帮助我们使两个不兼容的接口兼容 假设我们想使用function a 作为接口 但是只有function b 则可以使用适配器将f
  • 理解全虚拟、半虚拟以及硬件辅助的虚拟化

    接触过的一些搞了几年云计算的童鞋 也没明白常见的几种虚拟机技术方案的异同 比如只是记住了半虚拟要在虚拟机装驱动而全虚拟不需要 也不知道有时候为什么需要打开BIOS里的VT项 本人呢 在看了各种讲解虚拟化的书籍之后 有些概念虽然不是很清晰 但
  • HashPasswordForStoringInConfigFile 已过时

    https blog csdn net ibenxiaohai123 article details 77453340 https docs microsoft com en us dotnet api system security cr
  • 【ES6】对象的扩展

    文章目录 一 对象的扩展 二 用法详解 1 属性的简洁表示 2 属性名表达式 3 Object is 4 扩展运算符与Object assign 5 in 6 对象的遍历方式 一 对象的扩展 属性的简洁表示法 属性名表达式 Object i
  • Qt-初识

    文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 一 是什么 Qt是一个由Qt Company开发的跨平台C 图形用户界面应用程序开发框架 它既可以开发GUI程序 也可用于开发非GUI程序 比如控制台工具
  • MATLAB 2018中LSTM时间序列分类

    从MATLAB2018a开始 增加了LSTM神经网络工具箱 上图将时序数据分类为categorical 0 或categorical 1 每一行代码解释如下 该时序数据每一个时刻都是一个11维的列向量 隐藏层节点为270 分为两类0或1 构
  • Ciclop horus源码编译

    1 简介 Ciclop是西班牙BQ公司开源的一个DIY 3D扫描仪Horus则是配套开发的3D扫描软件 这款Ciclop是完全开源的 该公司甚至把有关这台3D扫描仪的所有相关机械设计 电子 软件 算法 数学和进行的测试都公布在了开源社区上