Halcon三维模型预处理(1):调平的三大手法

2023-11-09

  • 面结构光拍摄生成的点云模型,往往相对系统坐标系是有角度的。
  • 首先讲一下调平的目的:
    1.为接下来的预处理切除背景面做准备
    3.不做调平,后续处理会很麻烦,因为不清楚坐标系在平台的为位置
    2.对于无序抓取项目,平台相对相机可能是有角度的,将抓取平台调整到与相机平行,可以以Z轴方向,从高到低获取抓取物点云。处理速度更快,且干扰更少。
    在这里插入图片描述
  • 常见的调平手法有三种。

一.拟合平面方式

  • 该方法适合平面点云模型的调平处理
  • 回顾一下上一篇预处理去噪,讲了去除多余噪声,并将点云模型拆分成x,y,z坐标组成的三个集合。
  • 应用X,Y,Z三个坐标集合求出平面的质心坐标以及法向量,并检验平面的平面度是否合格。(这个知识点在我的博客’基于Halcon的结构光三维重建’中有讲解
  • 通过质心坐标以及法向量拟合平面,得到平面位姿

在这里插入图片描述

二.非平面或不规则三维物体的调平

在这里插入图片描述

  • 沿着物体主轴,根据密度最大的方向作为标准轴,调正一个三维物体
  • 这个方法与上文拟合平面的方法最大的区别:需要必须将姿态逆变换(pose_invert)
    调整姿态后的效果图
    在这里插入图片描述

三.规则的三维物体的姿态调正

  • 对于外形规整的零件,可以绘制最小外接箱体来代替立体物体的姿态。
    在这里插入图片描述
  • 与moment方法相同,要对外界箱体做姿态翻转’pose_invert’,这个翻转类似于矩阵的求逆。
    最小面积的外界箱体调平效果
    在这里插入图片描述
    与坐标轴重合的最小外界箱体调平效果
    在这里插入图片描述
  • 画外接箱体的操作对比Halcon二维获取外接矩形套路。
* read_image(Image, 'fabrik')
* threshold (Image, Regions, 155, 255)
* connection(Regions, ConnectedRegions)
* select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
* smallest_rectangle1(SelectedRegions, Row1, Column1, Row2, Column2)
* dev_set_color('green')
* dev_set_draw('margin')
* dev_display(SelectedRegions)
* gen_rectangle1(Rectangle, Row1, Column1, Row2, Column2)

四.调平处理

1.调平有两种方式:
1)坐标系平移到点云模型的表面
1)直接将点云模型平移到坐标系处
在这里插入图片描述

  • 在图中可看到坐标系 Z轴是面对平台向里的,为了方便观察,可将点云模型沿y轴旋转180, 沿y轴负方向平移200个单位进行校正。
    在这里插入图片描述
六.总结

无论是拟合平面、非规则物体调平、规则三维物体调平核心思想都是先求出当前三维空间物体的姿态,之后对姿态(Pose)翻转,使其与坐标轴重合。

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

Halcon三维模型预处理(1):调平的三大手法 的相关文章

  • AD如何圆形布局led

    1 左击选中led 2 右击复制 点击圆心 3 选择edit paste special 4 输入个数 和角度 360 个数 5 点OK 选择圆心双击
  • halcon——缺陷检测常用方法总结(模板匹配(定位)+差分)

    引言 机器视觉中缺陷检测分为一下几种 blob分析 特征 模板匹配 定位 差分 光度立体 halcon 缺陷检测常用方法总结 光度立体 唯有自己强大 博客园 cnblogs com 特征训练 测量拟合 频域 空间域结合 halcon 缺陷检
  • Halcon API

    1 延时等待 wait seconds 0 5 注 括号内以秒为单位 2 遍历文件夹 list files Directory Options Files Directory 目录 文件夹路径 Options 选项 files 指定搜索的格
  • Ubuntu20.04编译安装opencv3.2和opencv_contrib-3.2

    图像特征提取中需要用到SIFT等算法 因此不得不安装从源码编译安装opencv contrib 网上有很多教程 但是在不同的环境下多少会出现一些错误 针对Ubuntu20 04 gcc 7环境下对opencv opencv contrib编
  • Halcon/C++编程

    配置环境 网上有许多 可以参考配置opencv的步骤 主要就是在配置库目录 包含目录 lib文件 注意 一定要看清楚是win32还是x64 2 实例 显示一幅图像 TODO 在此添加控件通知处理程序代码 HObject ho Image H
  • 像素和毫米怎么换算

    像素和毫米怎么换算 像素和毫米是不能直接转换的 只有在分辩率 dpi 下才能进行转换 因此 像素与毫米的转换 需要知道参数 DPI 每英寸多少点 象素数 DPI 英寸数 英寸数 25 4 毫米数 对于显示设备 不管是打印机还是屏幕 都有一种
  • halcon颜色识别

    halcon颜色识别 通过不同颜色在灰度图中的阈值范围不同来区分颜色 使用阈值分别选出不同的颜色 使用灰度平均值 循环读图进行处理 HSV模型区分颜色 通过不同颜色在灰度图中的阈值范围不同来区分颜色 使用阈值分别选出不同的颜色 dev cl
  • opencv中的split函数

    split函数的功能是通道分离 原型 void split const Mat src Mat mvBegin void split InputArray m OutputArrayOfArrays mv 用法很显然 第一个参数为要进行分离
  • 【三维重建】【深度学习】NeRF_Pytorch代码--预备基础知识

    三维重建 深度学习 NeRF Pytorch代码 预备基础知识 给定一个场景的多视角的图像 神经辐射场 NeRF 通过图像重建误差优化一个神经场景表征 优化后可以实现逼真的新视角合成效果 NeRF最先是应用在新视点合成方向 由于其超强的隐式
  • 图像处理之高斯混合模型

    一 高斯混合模型 现有的图像中目标的分类常用深度学习模型处理 但是深度学习需要大量模型处理 对于明显提取的目标 常常有几个明显特征 利用这几个明显特征使用少量图片便可以完成图像目标分类工作 这里介绍使用高斯混合模型GMM处理图像 二 步骤
  • 火爆科研圈的三维重建技术:Neural radiance fields (NeRF)

    如果说最近两年最火的三维重建技术是什么 相信NeRF 1 是一个绝对绕不过去的名字 这项强到逆天的技术 一经提出 就被众多研究者所重视 对该技术进行深入研究并提出改进已经成为一个热点 仅仅过了不到两年的时间 NeRF及其变种已经成为重建领域
  • 相机曝光与增益

    曝光 和 增益 是直接控制传感器 CCD CMOS 上读出来的数据 是要优先调节的 以调节曝光时间为主 不过曝的前提下 增加曝光时间可以增加信噪比 使图像清晰 软件上有个选项可以把过曝的区域显示出来 当然 对于很弱的信号 曝光也不能无限增加
  • 颜色识别的实例二

    原图 识别结果 代码 color fuses hdev classify fuses by color dev update window off step set up fuse properties and hue ranges Fus
  • Ciclop开源3D扫描仪软件---Horus源码分析之src\horus\engine\calibration\autocheck.py

    c 光明工作室 2017 2037 COPYRIGHT 光明工作室团队成员大部分来自全国著名985 211工程院校 具有丰富的工程实践经验 本工作室热忱欢迎大家的光临 工作室长期承接嵌入式开发 PCB设计 算法仿真等软硬件设计 1 基于C8
  • 【三维重建】Ubuntu18.04安装COLMAP

    Ubuntu18 04安装COLMAP 文章目录 Ubuntu18 04安装COLMAP 前言 安装COLMAP 安装CUDA cuDNN 安装依赖项 安装Ceres优化库 安装glog 可选 配置并编译COLMAP 运行COLMAP 总结
  • 基于灰度的模板匹配(标准)

    原图 创建模板 在加了噪声的图中识别 代码 dev close window dev open window 0 0 599 464 black WindowID read image Image pumpe dev set draw ma
  • Halcon与WPF联合编程

    环境 VS2017 halcon12 1 新建WPF应用程序完成后 解决方案资源管理器 引用处右键 添加引用如下两个dll 只引入第一个也可以 2 工具箱 空白处右键 选择项 只添加halcondotnet dll 文件位置同上 这样hal
  • 【四】3D Object Model之创建Creation——read_object_model_3d()算子

    欢迎来到本博客 Halcon算子太多 学习查找都没有系统的学习查找路径 本专栏主要分享Halcon各类算子含义及用法 有时间会更新具体案例 具体食用方式 可以点击本专栏 Halcon算子快速查找 gt 搜索你要查询的算子名称 或者点击Hal
  • 手动切换 Kinect 的驱动程序(for OpenNI 1.* & Microsoft Kinect SDK 1.7)

    微软最近推出了最新版的 Kinect SDK 能够实现实时的 Kinect Fusion 并提供了丰富的手势交互功能 对体感交互开发人员的吸引力越来越大 而 OpenNI 2 0 以上的版本也转为使用微软官方的 Kinect 驱动 也显示了
  • 检测下我的饺子皮擀的怎么样(圆度)

    各位老铁周末愉快 快乐的时间做充实的事 好久没有吃饺子了 俗话说好吃不过饺子 我个人觉得会包饺子不算本事 会擀饺子皮那才叫 今天我就来 手撕 一下饺子皮 和面 和面这一步 看似简单 实则不难 不过还是要掌握一些小技巧 小技巧一 和面的水里面

随机推荐

  • linux驱动编程(六)--Menuconfig操作、Kconfig、.config文件、内核配置裁剪

    一 Menuconfig的操作 1 Linux编译器通过 config文件确认哪些代码编译进内核 哪些被裁剪掉 2 menuconfig是生成 config文件的一个工具 3 配置内核可以使用以下命令 make config 基于文本的最传
  • 三天搞定射频识别技术(二)2.4 S50卡原理

    M1卡 M1卡是谁 所谓的M1芯片 是指菲利浦下属子公司恩智浦出品的芯片缩写 全称为NXP Mifare1系列 常用的有S50及S70两种型号 属于非接触式IC卡 非接触式IC卡又称射频卡 成功地解决了无源 卡中无电源 和免接触这一难题 是
  • 3. Python使用shelve模块实现变量保存和加载恢复

    1 说明 Shelve模块是对象持久化保存方法 将对象保存到文件里面 缺省 即默认 的数据存储文件是二进制的 使用时 只需要使用open函数获取一个shelf对象 然后对数据进行增删改查操作 在完成工作 并且将内存存储到磁盘中 最后调用cl
  • 蓝桥杯2014年第五届真题-兰顿蚂蚁

    目录 题目描述 输入格式 输出格式 样例输入 样例输出 原题链接 题目分析 题目代码 时间限制 3s 内存限制 192MB 提交 7430 解决 3440 题目描述 兰顿蚂蚁 是于1986年 由克里斯 兰顿提出来的 属于细胞自动机的一种 平
  • 如何解决 conda install 库时报错:The environment is inconsistent, please check the package plan carefully

    在使用conda 安装库时 遇到了这样的问题 无论怎么安装都无法解决上述问题 本着可能是源的问题以及哪一步安装版本的问题 调试了一通后 解决了安装库失败的问题 首先是恢复默认源 恢复默认源 conda config remove key c
  • 计算机环境变量怎么恢复默认,windows10系统中环境变量怎么恢复默认

    有不少windows10系统用户在设置环境变量之后 可能不小心被恶意修改了导致出现问题 那么我们只需要将环境变量恢复默认即可 那么该怎么操作呢 本文就给大家讲解一下windows10系统中环境变量恢复默认的具体步骤如下 组策略编辑器中的MM
  • 以太坊智能合约虚拟机(EVM)原理与实现

    以太坊 EVM原理与实现 以太坊底层通过EVM模块支持合约的执行与调用 调用时根据合约地址获取到代码 生成环境后载入到EVM中运行 通常智能合约的开发流程是用solidlity编写逻辑代码 再通过编译器编译元数据 最后再发布到以太坊上 代码
  • 2023最新STM32毕业设计项目集合

    文章目录 1前言 2 STM32 毕设课题 3 如何选题 3 1 不要给自己挖坑 3 2 难度把控 3 3 如何命名题目 4 最后 1前言 更新单片机嵌入式选题后 不少学弟学妹催学长更新STM32和C51选题系列 感谢大家的认可 来啦 以下
  • Shiro权限框架-限制密码重试次数(8)

    1 实现原理 保证原子性 单系统 AtomicLong计数 集群系统 RedissionClient提供的RAtomicLong计数 1 获取系统中是否已有登录次数缓存 缓存对象结构预期为 用户名 登录次数 2 如果之前没有登录缓存 则创建
  • 【ElementUI样式优化1】el-table 修改斑马格样式、修改滚动条样式、添加表头边框、删除表格边框划线

    重要的不是过去 而是你怎末看待过去 而我们对过去的看法 是可以改变的 效果预览 1 删除表格外框 内框 2 添加表头边框 修改表头文字大小 颜色 3 斑马格修改颜色 选中行高亮颜色修改 4 修改滚动条样式 目录 一 原始样式说明 1 斑马纹
  • 试用许可常见问题解析

    从安装许可驱动 到正确配置试用许可 大家可能会遇到的各种问题 本文针对各类问题逐一介绍以及使用产品过程中许可中心异常的解决办法 在SuperMap 7C及8C系列产品中 均使用是LicenseCenter来配置及管理所有产品的许可 在安装i
  • husky无法工作 commit 提交代码时husky不生效解决方法

    husky无法工作原因 新版本 husky 中存在严重错误 https github com typicode husky issues 326 解决方法 安装低版本即可 yarn remove husky yarn add husky 4
  • Linux:C语言实现面向接口编程

    在Linux环境下 实现面向接口编程可以使用C语言中的函数指针来实现 具体步骤如下 定义接口 定义一个接口 包含一组函数指针 这些函数指针代表了该接口的方法 例如 我们可以定义一个名为 Interface 的接口 cCopy code ty
  • flow对性能的影响

    不同高中低端ROUTER 其netflow处理性能果然相差很大低端10000f s是极限 中端40000f s 高端60000f s 且还有simpled这个杀手锏 低端ROUTER 2600 2800 3600 3700 来说 采集100
  • 使用Python爬取前程无忧上南京地区Python职位以及对应工资

    获取原始数据 最近在学习Python 做了一个爬虫程序练练手 前程无忧这个网站页面布局还是挺简单的 适合我这种新手 使用requests bs4爬取 不多说了 先来看看页面布局吧 这是前程无忧上的职位列表 看上去还是很清楚的 然后再来看看页
  • systemctl start network 启动网卡服务报错解决方法

    systemctl start network 启动网卡服务报错 root apache systemctl restart network Job for network service failed because the contro
  • Hibernate之查询中get()和load()的区别,list()和iterate()的区别

    Hibernate 之查询中get 和load 的区别 list 和iterate 的区别 list 查询 一次性把数据对象取出来 Test public void findTestList Session s sessionFactory
  • python3 面试题总结

    Python global 语句的作用 lambda 匿名函数好处 Python 错误处理 Python 内置错误类型 简述 any 和 all 方法 Python 中什么元素为假 提高 Python 运行效率的方法 Python 单例模式
  • LeetCode63. 不同路径 II

    不同路径 II 一个机器人位于一个 m x n 网格的左上角 起始点在下图中标记为 Start 机器人每次只能向下或者向右移动一步 机器人试图达到网格的右下角 在下图中标记为 Finish 现在考虑网格中有障碍物 那么从左上角到右下角将会有
  • Halcon三维模型预处理(1):调平的三大手法

    面结构光拍摄生成的点云模型 往往相对系统坐标系是有角度的 首先讲一下调平的目的 1 为接下来的预处理切除背景面做准备 3 不做调平 后续处理会很麻烦 因为不清楚坐标系在平台的为位置 2 对于无序抓取项目 平台相对相机可能是有角度的 将抓取平