halcon深度图转点云

 参数主要在于cx,cy和f

公式主要是:

X = (u - cx) * Z / f
Y = (v - cy) * Z / f

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)


zResoulution := 0.1
cx := 359.374
cy := 328.806
f := 976.321

open_framegrabber ('3DCamera', 0, 0, 0, 0, 0, 0, 'default', -1, 'default', -1, 'false', 'A2110046366E00D33 Z16 (960x600) ', 'A2310192366E10D33', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
while (true)
    grab_image_async (Image, AcqHandle, -1)
    
    * Calutlate Z
    convert_image_type(Image, Z, 'real')
    scale_image(Z, Z, zResoulution, 0)

    * Calutlate X and Y
    * X = (u - cx) * Z / f
    * Y = (v - cy) * Z / f
    * u is the pixel index of x coord(Width coord), counted from 0
    * v is the pixel idnex of y coord(Height coord), counted from 0
    get_image_size(Image, w, h)
    
    * Generate u Map
    gen_image_surface_first_order(u, 'real', 0, 1, 0, 0, 0, w, h)
    * Generate v Map
    gen_image_surface_first_order(v, 'real', 1, 0, 0, 0, 0, w, h)
    
    scale_image(u, X, 1, -cx)
    scale_image(v, Y, 1, -cy)
    
    mult_image(X, Z, X, 1/f, 0)
    mult_image(Y, Z, Y, 1/f, 0)
    
    xyz_to_object_model_3d(X, Y, Z, PointCloud)
    write_object_model_3d(PointCloud, 'ply', 'test.ply', [], 0)
    visualize_object_model_3d (WindowHandle, PointCloud, [], [], [], [], [], [], [], PoseOut)
endwhile
close_framegrabber (AcqHandle)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值