Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\moving_calibration.py

2023-11-03


 *                                                 联系方式:
 *                                                 QQ:2468851091 call:18163325140
 *                                                 Email:2468851091@qq.com
 *

/ ****************************************************************************/ 



# -*- coding: utf-8 -*-
# This file is part of the Horus Project

__author__ = 'Jes煤s Arroyo Torrens <jesus.arroyo@bq.com>'
__copyright__ = 'Copyright (C) 2014-2016 Mundo Reader S.L.'
__license__ = 'GNU General Public License v2 http://www.gnu.org/licenses/gpl2.html'

import time
from horus.engine.calibration.calibration import Calibration


class MovingCalibration(Calibration):

    """Moving calibration:

            - Move motor sequence
            - Call _capture at each position
            - Call _calibrate at the end
    """

    def __init__(self):
        Calibration.__init__(self)
        self.step = 3

    def _initialize(self):
        raise NotImplementedError

    def _capture(self, angle):
        raise NotImplementedError

    def _calibrate(self):
        raise NotImplementedError

    def _start(self):
        if self.driver.is_connected:
            angle = 0.0

            self._initialize()

            # Setup scanner
            self.driver.board.lasers_off()
            self.driver.board.motor_enable()
            self.driver.board.motor_reset_origin()
            self.driver.board.motor_speed(200)
            self.driver.board.motor_acceleration(200)

            # Move to starting position
            self.driver.board.motor_move(-90)

            if self._progress_callback is not None:
                self._progress_callback(0)

            while self._is_calibrating and abs(angle) < 180:

                if self._progress_callback is not None:
                    self._progress_callback(100 * abs(angle) / 180.)

                self._capture(angle)

                angle += self.step
                self.driver.board.motor_move(self.step)
                time.sleep(0.5)

            # Move to origin
            self.driver.board.motor_move(90 - angle)

            self.driver.board.lasers_off()
            self.driver.board.motor_disable()

            # Compute calibration
            response = self._calibrate()

            if self._after_callback is not None:
                self._after_callback(response)


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

Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\moving_calibration.py 的相关文章

  • 数学之路-python计算实战(16)-机器视觉-滤波去噪(邻域平均法滤波)

    coding utf 8 code myhaspl 64 myhaspl com 邻域平均法滤波 半径为2 import cv2 import numpy as np fn 61 34 test3 jpg 34 myimg 61 cv2 i
  • 机器视觉(一)——ROS中的图像数据

    机器视觉 xff08 一 xff09 ROS中的图像数据 目录 总述一 二维图像数据二 三维点云数据 总述 无论是USB摄像头还是RGBD摄像头 xff0c 发布的图像数据格式多种多样 xff0c 在处理这些数据之前 就需要了解这些数据的格
  • HyperLPR车牌识别技术算法之车牌粗定位与训练

    关于HyperLPR HyperLPR是一个使用深度学习针对对中文车牌识别的实现 与较为流行的开源的EasyPR相比 它的检测速度和鲁棒性和多场景的适应性都要好于目前开源的EasyPR HyperLPR可以识别多种中文车牌包括白牌 新能源车
  • slowfast解读:facebook用于机器视觉分析视频理解的双模CNNk

    检测并归类图像中的物体是最广为人知的一个计算机视觉任务 随着ImageNet数据集挑战而更加流行 不过还有一个令人恼火的问题有待解决 视频理解 视频理解指的是对视频片段进行分析并进行解读 虽然有一些最新的进展 现代算法还远远达不到人类的理解
  • 机器视觉与计算机视觉的区别

    机器视觉 Machine Vision MV 与计算机视觉 Computer Vision CV 两者既有联系又有区别 机器视觉与计算机视觉有很多相似之处 在架构上都是基础层 技术层 应用层 并且两者的基本理论框架 底层理论 算法等是相似的
  • 【神经网络深度学习】--语义分割 Unet

    Unet 发表于 2015 年 属于 FCN 的一种变体 Unet 的初衷是为了解决生物医学图像的问题 由于效果确实很好后来也被广泛的应用在语义分割的各个方向 如卫星图像分割 工业瑕疵检测等 Unet 跟 FCN 都是 Encoder De
  • Canny边缘检测算法原理及其VC实现详解(一)

    目录 1 边缘检测原理及步骤 2 Canny边缘检测算法原理 2 1 对原始图像进行灰度化 2 2 对图像进行高斯滤波 2 3 用一阶偏导的有限差分来计算梯度的幅值和方向 2 4 对梯度幅值进行非极大值抑制 2 5 用双阈值算法检测和连接边
  • 推荐一个超好用的视觉算法可视化分析工具

    First of all 先甩个项目github链接 https github com aiyojun cv algo analysis 如果觉得不错的给个star吧 鉴于视觉软件的开发成本太高 所以本人基于历史经验写了一个超级方便的可视化
  • Halcon-表面检测-----裂纹检测

    对应示例程序 detect mura defects blur hdev 目标 实例实现LCD上有很多污点干扰下 检测LCD的印痕检测 思路为 对LCD图像进行拆分 提取RGB三个分量 对B分量进行处理 将其转换为频域内图像 并对其进行高斯
  • Opencv 视频帧的读写处理指导

    Opencv 视频帧的读写指导 思路指导 1 先打开视频文件 2 遍历视频帧 3 处理视频帧 4 保存所有的视频帧 1 打开视频 1 当读取的是保存的视频时 打开视频的方法为 cv VideoCapture capture 视频名 将视频放
  • 机器视觉介绍

    机 器 视 觉 介 绍 机器视觉介绍 机器视觉介绍 机器视觉检测系统任务 尺寸测量 条码识别 外观测量
  • OpenCV相机标定全过程

    一 OpenCV标定的几个常用函数 findChessboardCorners 棋盘格角点检测 bool findChessboardCorners InputArray image Size patternSize OutputArray
  • 拉普拉斯的原理

    拉普拉斯是一种二阶导数算子 是一个与方向无关的各向同性 旋转轴对称 边缘检测算子 若只关心边缘点的位置而不顾其周围的实际灰度差时 一般选择该算子进行检测 拉普拉斯算子为二阶差分 其方向信息丢失 常产生双像素 对噪声有双倍加强作用 因此它很少
  • 相机曝光与增益

    曝光 和 增益 是直接控制传感器 CCD CMOS 上读出来的数据 是要优先调节的 以调节曝光时间为主 不过曝的前提下 增加曝光时间可以增加信噪比 使图像清晰 软件上有个选项可以把过曝的区域显示出来 当然 对于很弱的信号 曝光也不能无限增加
  • 【机器视觉系统】基于3DOF机械臂的五子棋机器人(1)

    基于3DOF机械臂的五子棋机器人 文章目录 基于3DOF机械臂的五子棋机器人 1 前言 2 机器视觉系统概述 2 1 机器 2 2 视觉 2 3 系统 3 系统组成概述 3 1 使用工具盘点 3 2 流程图 4 制作步骤建议 5 需要的知识
  • 机器视觉(十一):一维条码识别

    目录 机器视觉 一 概述 机器视觉 二 机器视觉硬件技术 机器视觉 三 摄像机标定技术 机器视觉 四 空域图像增强 机器视觉 五 机器视觉与世界杯 机器视觉 六 频域图像增强 机器视觉 七 图像分割 机器视觉 八 图像特征提取 机器视觉 九
  • 【机器视觉学习笔记】大津法/Otsu最大类间方差法 最佳阈值处理(C++)

    目录 概念 C 源码 OtsuThreshold 主函数 效果 完整源码 平台 Windows 10 20H2 Visual Studio 2015 OpenCV 4 5 3 本文所用源码修改自C opencv 图片二值化最佳阈值确定 大津
  • opencv的安装、配置及所遇问题(Ubuntu16.04 + OpenCV3.4.2 + Python3.6)

    安装opencv对好多首次安装的开发者来说都是一场勇气和运气的较量 同样也是我在安装Ubuntu下安装过的众多软件包中最为波折的一款 在此记录安装过程中出现的各种error 幸运女神眷顾的安装顺序 1 安装ubuntu下的依赖项 sudo
  • 图像加权运算

    import os import re import cv2 cv2 imshow image img 显示 cv2 waitKey 10000 停留 cv2 destroyAllWindows 关闭 from PIL import Ima
  • 手动切换 Kinect 的驱动程序(for OpenNI 1.* & Microsoft Kinect SDK 1.7)

    微软最近推出了最新版的 Kinect SDK 能够实现实时的 Kinect Fusion 并提供了丰富的手势交互功能 对体感交互开发人员的吸引力越来越大 而 OpenNI 2 0 以上的版本也转为使用微软官方的 Kinect 驱动 也显示了

随机推荐

  • Java面向对象(基础总结)

    Java面向对象 基础总结 面向对象是一种编程思想 面向对象的三大基本特征 封装 继承 多态 面向对象的编程思想就是把事物看作一个整体 从事物的特征 属性 和行为 方法 两个方面进行描述 面向对象的过程就是找对象 建立对象 使用对象 维护对
  • angular中涉及rxjs请求beego接口跨域问题解决

    今天遇到一个调用服务端接口跨域问题 我用本地的angular运行项目 访问本地的beego接口 发现请求接口状态404 并且接口方法还是OPTIONS 一查知道是跨域了 在网上搜索一些跨域访问的方法 发现跨域时访问可以了 但正常post接口
  • Java中的代理(二)--JDK动态代理

    JDK动态代理借助接口实现 目标类需是接口形式 代理类继承InvocationHandler类 通过反射方式动态创建目标类 1 目标对象 public interface ByShoot void byShoot String size p
  • LWN 翻译:Atomic Mode Setting 设计简介(下)

    译者注 紧接上篇文章 本篇翻译起来有难度 同时对读者的技术背景有一定要求 适合深入研究 DRM 驱动的开发人员阅读 通过阅读本文 你将了解如下内容 DRM MODE ATOMIC ALLOW MODESET 标志位的由来及其作用 驱动中随处
  • 常见CMS系统总结

    一 CMS系统是什么 CMS系统指的是内容管理系统 CMS可以理解为CMS帮你把一个网站的程序部分的事全做完了 你要做的只是一个网站里面美工的部份 只要搞几个静态网页模板 一个门户级的网站就出来了 二 CMS系统的分类 企业建站系统 Met
  • MYSQL:ER_NOT_SUPPORTED_AUTH_MODE:Client does not support authentication protocol

    今天新建一个koa项目 启动调用mysql驱动的时候报该错误 solution 在系统mysql终端输入下面命令 重启koa进程即可 yourpassword 是你的数据库账户密码 root和host也是 ALTER USER root l
  • 印刷MES管理系统等数字化系统,应用发展如此迅速

    作为印刷企业最基本的数字化管理系统 印刷MES管理系统与印刷ERP管理系统在最近两年普遍受到印刷企业的关注并得到迅速发展 市场需求旺盛 1 ERP逐渐普及到中小企业 ERP管理系统延续了前两年的发展趋势 市场正在从普及阶段转入升级阶段 一方
  • 构建微服务开源生态,TARS项目将成立基金会

    导语 在20世纪60至70年代 软件开发人员通常在大型机和小型机上使用单体架构进行软件开发 没有一个应用程序能够满足大多数最终用户的需求 垂直行业使用的软件代码量更小 与其他应用程序的接口更简单 而可伸缩性在当时并不是优先考虑的 随着互联网
  • -day11--函数进阶

    day11 函数进阶 目标 掌握函数相关易错点 项目开发必备技能 概要 参数的补充 函数名 函数名到底是什么 区分返回值和print 函数的作用域 1 参数的补充 函数进阶 在特定情况下可以让代码更加简洁 提升开发效率 1 1 参数内存地址
  • 一、Nginx源码安装与yum安装

    目录标题 源码安装 yum安装 源码安装 wget http nginx org download nginx 1 15 8 tar gz tar zxvf nginx 1 15 8 tar gz cd nginx 1 15 8 confi
  • 关于Vue中element按需引入

    在项目中使用elementui确实是很方便的一件事 但是如果我只需要用到其中的某一些元素来简化代码的话 全局引入就显得有点臃肿了 这就有了按需引入的概念 需要什么就引入什么 方便 一 安装element ui npm i element u
  • 基于卷积神经网络的手写数字识别(自建模型)

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 卷积神经网络是一种多层的监督学习神经网络 隐含层的卷积层和池采样层是实现卷积神经网络特征提取功能的核心模块 该网络模型通过采用梯度下降法最小化损失函数对网络中
  • JavaScript——为什么静态方法不能调用非静态方法

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • 【机器学习】Random Forest(随机森林)入门和实战(一)先写个项目

    准备条件 seaborn 一个可视化工具 不会用参见 数据可视化工具seaborn matplotlib pyplot 也是一个可视化工具 sklearn pandas numpy jupyter notebook 实践项目 项目地址 Ka
  • [870]MySQL中update修改数据与原数据相同会再次执行吗

    文章目录 背景 测试环境 binlog format为ROW 测试步骤 总结 binlog format为STATEMENT 测试步骤 总结 背景 本文主要测试MySQL执行update语句时 针对与原数据 即未修改 相同的update语句
  • 简单多层神经网络推导及实现

    1 前向传播 2 反向传播 2 1三层网络 2 2多层网络 3 正则化 3 1 L1 Regularization 3 2 L2 Regularization 4 实验结果 5 python实现 coding utf 8 Created o
  • [897]使用Maxwell实时同步mysql数据

    Maxwell简介 maxwell是由java编写的守护进程 可以实时读取mysql binlog并将行更新以JSON格式写入kafka rabbitMq redis等中 这样有了mysql增量数据流 使用场景就很多了 比如 实时同步数据到
  • idea项目使用maven引入json-lib包问题

    项目工程中有依赖到json lib包 通过maven来管理 但是通过如下引用的话 在idea中会报错 官网给出的json lib依赖如下
  • OLED透明屏设计:开创产品创新的未来之路

    OLED透明屏作为一项革命性的技术 正以其卓越的特性和创新的应用 引领产品设计领域的未来 那么 尼伽将探索OLED透明屏设计的创新之路 从材料选择 形状设计 交互体验等多个角度 结合相关真实数据材料和研究报告 阐述其在产品设计中的应用和优势
  • Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\moving_calibration.py

    联系方式 QQ 2468851091 call 18163325140 Email 2468851091 qq com coding utf 8 This file