2.Halcon3D点云处理-点云可视化

在halcon处理三维数据的时候,我们就有一个非常棘手的需求,就是想要像Maya 3Dmax一样,非常直观的可视化自己的数据,而在halcon之中也提供了功能非常全面的可视化工具;


halcon提供的可视化功能可以

在三维坐标中很方便的观察点云对象

可以显示多个点云对象 在同一个窗体内

可以根据XYZ任意维度来对点云的点进行渲染着色


1.首先我们读取一个三维对象

这里我们是读取了一只斯坦福兔子,这个兔子对于学习点云处理的人来说可就太熟悉啦

在读取完毕之后观察变量窗口

发现多了一个三维对象变量

双击这个ObjectModel3D的句柄,出现如下图所示的界面

在这个窗体的左上角勾选Display Models,即可弹出一个可视化窗体

如图所示

在刚才的那个窗体里面还可以看到点云的一些属性

比如上图就显示了组成这个点云的点 是否有三角化/是否有法向量等等这些属性

至此我们读取一个三维对象就完成了

2.初步可视化三维对象

读取三维对象之后(在halcon内叫做HObjectModel3D),我们调用可视化本地函数-visualize_object_model_3d来可视化点云

dev_get_window (WindowHandle)

visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [], [], [], [], [], [], PoseOut)

直接执行,如下图所示

我们在给进去的窗口句柄的窗口上看到了可视化窗口,右下角有一个“继续”的按钮

此时可以通过鼠标左键来变化观察的视角,来观察一个三维对象

在这个本地函数的帮助文档里面,有着这样一句话

大概意思是旋转就是鼠标左键

缩放就是Shift键加上鼠标左键(或者是鼠标中间滚轮)

平移就是Ctrl键加上鼠标左键

3.按Z方向高度渲染颜色可视化

实现如下图所示结果

实现上图可视化功能很简单

只需要给可视化本地函数设置几个可视化参数就可以

代码如下

dev_get_window (WindowHandle) GenParamName := ['lut','color_attrib','light_position','disp_pose','alpha']

GenParamValue := ['color1','coord_y','0.0 0.0 -0.3 1.0','true',0.9]

visualize_object_model_3d (WindowHandle, ObjectModel3D, [], [],GenParamName, GenParamValue, [], [], [], PoseOut)

可视化的这个本地函数参数很多

具体参考halcon的帮助文档

这里有一些可选参数

还有一些参数在disp_object_model_3d这个算子的帮助文档中

具体的参数名 和参数含义我就不挨着挨着去解释了,有了这个帮助文档,然后拿手机翻译一下单词,很容易就能理解的

这个可视化参考例程moments_object_model_3d

4.用颜色渲染深度图

很多时候我们在做一些简单的深度图处理的时候,我们不会去生成HobjectModel3d(生成的过程开销更大),那么很多时候我们就会需要直接对深度图进行可视化了;

之前做项目的时候,对着16位的深度图去看高低确实非常不直观,对于现场调试的兄弟们也非常不友好,很多时候我们没有办法直接通过看图来确定程序判定是否准确。

这样的话我们就可以在显示在界面上的时候稍微做一点点处理

比如下面我们读取一个深度图

处理之后就可视化成了

这样可以清晰的观察表面的纹路缺陷

halcon代码如下

MaxVal := 1
MinVal := -1
scaleVal := 255.0/(MaxVal-MinVal)

scale_image (Zmap, ImageScaled, scaleVal, scaleVal*-MinVal)

convert_image_type (ImageScaled, ImageConverted, 'byte')

gen_image_proto (ImageConverted, S, 200)

gen_image_proto (ImageConverted, V, 200)

trans_to_rgb (ImageConverted, S, V, ImageRed, ImageGreen, ImageBlue, 'hsv')

compose3 (ImageRed, ImageGreen, ImageBlue, MultiChannelImage)

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄晓魚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值