当前位置: 首页 > news >正文

Halcon tiff 点云读取以及平面矫正

一、读取tiff 图


dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)xResolution:=0.0025
yResolution:=0.0025
zResolution:=0.001
read_image (IntputImage, 'C:/Users/alber/Desktop/2023-08-15_16-38-24-982_/Sta5_002.tif')
zoom_image_factor (IntputImage, IntputImage, 1,4, 'constant')
get_domain (IntputImage, Domain)
*获取该区域的最大最小值
min_max_gray (Domain, IntputImage, 0, Min, Max, Range)
*去除无效数据
threshold (IntputImage, Region,-1.2, Max)
reduce_domain (IntputImage, Region, ImageReduced)get_image_size (ImageReduced, Width, Height)
convert_image_type (ImageReduced, ImageConvertedX, 'real')
*生成xy坐标的图像映射,乘以分辨率就是xy的相对值
gen_image_surface_first_order (ImageSurface, 'real', 1, 0, 0, 0, 0, Width, Height)
gen_image_surface_first_order (ImageSurface1, 'real', 0, 1, 0, 0, 0, Width, Height)
scale_image (ImageSurface, X, xResolution, 0)
scale_image (ImageSurface1, Y, yResolution, 0)*创建3D模型
xyz_to_object_model_3d (Y,X,ImageReduced, ObjectModel3D)
write_object_model_3d (ObjectModel3D, 'ply', 'C:/Users/alber/Desktop/abc.ply', [], [])
disp_object_model_3d (WindowHandle, [ObjectModel3D], [], [], ['color_0','alpha'], ['green',0.7])

二、平面矫正

用Z轴来矫正


select_points_object_model_3d (ObjectModel3D, 'point_coord_x', 2.73, 3.2, ObjectModel3DThresholded)
select_points_object_model_3d (ObjectModel3DThresholded, 'point_coord_y', 1, 3.4, ObjectModel3DThresholded)
fit_primitives_object_model_3d (ObjectModel3DThresholded, ['primitive_type','fitting_algorithm'], ['plane','least_squares_tukey'], ObjectModel3DOut)* 这一步很重要
get_object_model_3d_params (ObjectModel3DOut, 'primitive_parameter_pose', pose)*用Z轴来矫正* 将旋转的角度转转回去pose[3]:=-pose[3]pose[4]:=-pose[4]pose[5]:=-pose[5]
write_object_model_3d (ObjectModel3DThresholded, 'ply', 'C:/Users/alber/Desktop/abc3333.ply', [], [])
*
rigid_trans_object_model_3d (ObjectModel3DThresholded, pose, ObjectModel3DRigidTrans)
write_object_model_3d (ObjectModel3DRigidTrans, 'ply', 'C:/Users/alber/Desktop/abc3333afffff.ply', [], [])rigid_trans_object_model_3d (ObjectModel3D, pose, ObjectModel3DRigidProdUCE)
write_object_model_3d (ObjectModel3DRigidProdUCE, 'ply', 'C:/Users/alber/Desktop/ABC_CR.ply', [], [])

三、 从一个姿态转到指定的姿态

1、将原始姿态pose ->matrix1

2、将指定的姿态pose 2->matrix2

3、svd  矩阵分解,计算出两个姿态的差接矩阵M

4、矩阵-》pose

5、rigid_trans_object_model_3d

矫正前:

矫正后:

 

 

全部代码:


dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)xResolution:=0.0025
yResolution:=0.0025
zResolution:=0.001
read_image (IntputImage, 'C:/Users/alber/Desktop/2023-08-15_16-38-24-982_/Sta5_002.tif')
zoom_image_factor (IntputImage, IntputImage, 1,4, 'constant')
get_domain (IntputImage, Domain)
*获取该区域的最大最小值
min_max_gray (Domain, IntputImage, 0, Min, Max, Range)
*去除无效数据
threshold (IntputImage, Region,-1.2, Max)
reduce_domain (IntputImage, Region, ImageReduced)get_image_size (ImageReduced, Width, Height)
convert_image_type (ImageReduced, ImageConvertedX, 'real')
*生成xy坐标的图像映射,乘以分辨率就是xy的相对值
gen_image_surface_first_order (ImageSurface, 'real', 1, 0, 0, 0, 0, Width, Height)
gen_image_surface_first_order (ImageSurface1, 'real', 0, 1, 0, 0, 0, Width, Height)
scale_image (ImageSurface, X, xResolution, 0)
scale_image (ImageSurface1, Y, yResolution, 0)*创建3D模型
xyz_to_object_model_3d (Y,X,ImageReduced, ObjectModel3D)
write_object_model_3d (ObjectModel3D, 'ply', 'C:/Users/alber/Desktop/abc.ply', [], [])
disp_object_model_3d (WindowHandle, [ObjectModel3D], [], [], ['color_0','alpha'], ['green',0.7])select_points_object_model_3d (ObjectModel3D, 'point_coord_x', 2.73, 3.2, ObjectModel3DThresholded)
select_points_object_model_3d (ObjectModel3DThresholded, 'point_coord_y', 1, 3.4, ObjectModel3DThresholded)
fit_primitives_object_model_3d (ObjectModel3DThresholded, ['primitive_type','fitting_algorithm'], ['plane','least_squares_tukey'], ObjectModel3DOut)* 这一步很重要
get_object_model_3d_params (ObjectModel3DOut, 'primitive_parameter_pose', pose)*用Z轴来矫正* 将旋转的角度转转回去pose[3]:=-pose[3]pose[4]:=-pose[4]pose[5]:=-pose[5]
write_object_model_3d (ObjectModel3DThresholded, 'ply', 'C:/Users/alber/Desktop/abc3333.ply', [], [])
*
rigid_trans_object_model_3d (ObjectModel3DThresholded, pose, ObjectModel3DRigidTrans)
write_object_model_3d (ObjectModel3DRigidTrans, 'ply', 'C:/Users/alber/Desktop/abc3333afffff.ply', [], [])rigid_trans_object_model_3d (ObjectModel3D, pose, ObjectModel3DRigidProdUCE)
write_object_model_3d (ObjectModel3DRigidProdUCE, 'ply', 'C:/Users/alber/Desktop/ABC_CR.ply', [], [])pose_compose (pose, pose, PoseCompose)svd_matrix (, 'full', 'both', MatrixUID, MatrixSID, MatrixVID)

相关文章:

Halcon tiff 点云读取以及平面矫正

一、读取tiff 图 dev_close_window () dev_open_window (0, 0, 512, 512, black, WindowHandle)xResolution:0.0025 yResolution:0.0025 zResolution:0.001 read_image (IntputImage, C:/Users/alber/Desktop/2023-08-15_16-38-24-982_/Sta5_002.tif) zoom_image_factor (Intpu…...

详解Spring中基于注解的Aop编程以及Spring对于JDK和CGLIB代理方式的切换

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…...

百度/抖音/小红书/微信搜索品牌形象优化怎么做?

搜索口碑是网络营销不可或缺的一部分,企业如何做好品牌搜索口碑优化呢?小马识途营销顾问建议从以下几方面入手。 1. 通过关键字优化提高自身知名度 通过对竞争对手和目标客户的关键字进行分析,企业可以确定哪些关键字可以提高自身品牌知名度。…...

爬虫学习(三)用beautiful 解析html

安装库 import requests from bs4 import BeautifulSoup headers {"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36 Edg/119.0.0.0"} for start_num in range(0,250…...

OSG编程指南<十四>:OSG纹理渲染之普通纹理、多重纹理、Mipmap多级渐远纹理及TextureRectangle矩阵纹理

1、纹理映射介绍 物体的外观不仅包括形状,不同物体表面有着不同的颜色和图案。一个简单而有效地实现这种特性的方法就是使用纹理映射。在三维图形中,纹理映射(Texture Mapping)的方法运用广泛,使用该技术可以大大提高物…...

Langchain-Chatchat的安装过程

参考:LLMs之RAG:LangChain-Chatchat(一款中文友好的全流程本地知识库问答应用)的简介(支持 FastChat 接入的ChatGLM-2/LLaMA-2等多款主流LLMs多款embe_一个处女座的程序猿的博客-CSDN博客 1、安装过程中出现了 GPU驱动版本 是11.8 而 python -c "…...

Windows系列:Windows Server 2012 R2 安装VMware Tools的正确姿势(实现物理机和虚拟机文件互传)

Windows Server 2012 R2 安装VMware Tools的正确姿势(实现物理机和虚拟机文件互传) 安装环境安装步骤一. 安装补丁下面进入教程首先打开虚拟机,点击"虚拟机"选项中的"安装VMware Tools"点击确定如果出现下图中的问题,说明虚拟机中缺少更新程序,我们需…...

最长连续递增序列

最长连续递增序列 描述 : 给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 …...

FreeRTOS入门--任务

目录 一、什么是任务 二、创建任务---xTaskCreate函数 三、任务的删除 四、任务优先级 1.阻塞状态(Blocked) 2.暂停状态(Suspended) 3.就绪状态(Ready) 五、Delay 六、调度算法 一、什么是任务 在FreeRTOS中&#xff0c;任务就是一个函数&#xff0c;原型如下&#xff…...

4个解决特定的任务的Pandas高效代码

在本文中&#xff0c;我将分享4个在一行代码中完成的Pandas操作。这些操作可以有效地解决特定的任务&#xff0c;并以一种好的方式给出结果。 从列表中创建字典 我有一份商品清单&#xff0c;我想看看它们的分布情况。更具体地说&#xff1a;希望得到唯一值以及它们在列表中出…...

【已解决】AttributeError: module ‘gradio‘ has no attribute ‘Image‘

问题描述 AttributeError: module gradio has no attribute Image 不知道作者用的是哪个gradio版本&#xff0c;最新的版本报错AttributeError: module gradio has no attribute outputs &#xff0c; 换一个老一点的版本会报错AttributeError: module gradio has no attribute…...

高级软件工程15本书籍

如果您想学习软件工程技能并提高您的专业知识&#xff0c;那么这里是您的最佳选择。我们有一本很棒的书&#xff0c;可以极大地增强您在软件工程方面的知识。 1&#xff09;干净的代码 Robert C. Martin 写了一本名为“干净代码&#xff1a;敏捷软件工艺手册”的书。在本书中&…...

计网Lesson3 - 计算机网络评价指标与封包解包

文章目录 计算机网络的性能指标1. 速率2. 带宽3. 吞吐量4. 时延5. 时延带宽积6. 往返时间7. 利用率8. 数据的解包和封包 计算机网络的术语实体![实体](https://img-blog.csdnimg.cn/direct/cbf4ca9ed5ab4df290b5a17b4642c6a1.png)协议服务 计算机网络的性能指标 1. 速率 数据…...

深度学习好文记录,反复学习

recent update time&#xff1a;2023.12.2 深度学习入门 - 知乎、这本书也很好&#xff0c;作者写的专栏不错。 机器学习&#xff0c;深度学习一些好文_一只菜得不行的鸟的博客-CSDN博客 卷积神经网络学习路线&#xff08;五&#xff09;| 卷积神经网络参数设置&#xff0c;提…...

CSS浅谈动画性能

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 目的一、举个栗子二、性能分析1.从图层分析2.性能分析 总结 目的 为了探究使用动画时&#xff0c;『transform』和『width、height、margin等』的差异 一、举个栗子…...

万能的视频格式播放器

今天博主给大家带来一款“万能”的视频播放器——VLC Media Player&#xff0c;支持的文件格式非常多&#xff0c;大家快来一起看看吧&#xff01; VLC Media Player 是一款可播放大多数格式&#xff0c;而无需安装编解码器包的媒体播放器。可以播放 MPEG-1、MPEG-2、MPEG-4、D…...

设计模式---第五篇

系列文章目录 文章目录 系列文章目录前言一、知道观察者模式吗?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 一、知道观察者模式吗? 答:观察者模式是定义对…...

.NET8构建统计Extreme Optimization Numerical Libraries

为 .NET 8 构建统计应用程序 Extreme Optimization Numerical Libraries for .NET V8.1.22 添加了对 .NET 8 的支持&#xff0c;使您可以使用最新版本的 Microsoft 平台。 Extreme Optimization Numerical Libraries for .NET 是通用数学和统计类的集合&#xff0c;为技术和统计…...

07-原型模式-C语言实现

原型模式&#xff1a; Specify the kinds of objects to create using a prototypical instance,and create new objects by copying this prototype.&#xff08;用原型实例指定创建对象的种类&#xff0c; 并且通过拷贝这些原型创建新的对象。 &#xff09; UML图&#xff1…...

深度学习与深度迁移学习有什么区别?

深度学习包含深度迁移学习&#xff0c;它们都利用了深层神经网络&#xff08;Deep Neural Network&#xff0c;DNN&#xff09;来处理数据&#xff0c;并从中学习特征。但是&#xff0c;它们也有一些区别。 深度学习是一种机器学习方法&#xff0c;它通过多层神经网络来自动学…...

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…...

SkyWalking 10.2.0 SWCK 配置过程

SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外&#xff0c;K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案&#xff0c;全安装在K8S群集中。 具体可参…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

站群服务器的应用场景都有哪些?

站群服务器主要是为了多个网站的托管和管理所设计的&#xff0c;可以通过集中管理和高效资源的分配&#xff0c;来支持多个独立的网站同时运行&#xff0c;让每一个网站都可以分配到独立的IP地址&#xff0c;避免出现IP关联的风险&#xff0c;用户还可以通过控制面板进行管理功…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...