Halcon参考手册,第五章3D Reconstruction,3D重构(按章节更新)

第五章 3D Reconstruction,3D重构

5.1 双目立体

运算符列表

binocular_disparity
利用相关技术计算校正图像对的差值。
binocular_disparity_mg
用多重网格法计算校正后的立体图像对的差值。
binocular_disparity_ms
使用多扫描线优化计算校正立体图像对的差异。
binocular_distance
利用相关技术计算校正立体图像对的距离值。
binocular_distance_mg
用多重网格法计算了校正后的立体图像对的距离值。

binocular_distance_ms
使用多扫描线优化计算一个校正立体图像对的距离值。
disparity_image_to_xyz
将视差图像转换为校正立体系统中的三维点。
disparity_to_distance
在校正双目立体系统中将视差值转换为距离值。
disparity_to_point_3d
在整流立体系统中将图像点及其视差转换为三维点。
distance_to_disparity
在整流立体系统中将距离值转换为视差。
essential_to_fundamental_matrix
从基本矩阵计算基本矩阵。
gen_binocular_proj_rectification
计算弱标定双目立体图像的射影校正。
gen_binocular_rectification_map
生成变换映射,该变换映射描述双目相机对的图像到公共整流图像平面的映射。
intersect_lines_of_sight
在双目相机系统中,从两条视线的交叉处获得一个3D点。

match_essential_matrix_ransac
通过自动查找图像点之间的对应关系来计算一对立体图像的基本矩阵。
match_fundamental_matrix_distortion_ransac
通过自动查找图像点之间的对应关系,计算一对立体图像的基本矩阵和径向畸变系数。
match_fundamental_matrix_ransac
通过自动查找图像点之间的对应关系来计算一对立体图像的基本矩阵。
match_rel_pose_ransac
通过自动查找图像点之间的对应关系来计算两个相机之间的相对方向。
reconst3d_from_fundamental_matrix
基于基本矩阵计算点的投影三维重建。
rel_pose_to_fundamental_matrix
从两个相机的相对方向计算基本矩阵。
vector_to_essential_matrix
计算给定图像点对应的基本矩阵和已知的相机矩阵,重建三维点。
vector_to_fundamental_matrix

vector_to_fundamental_matrix
给定一组图像点对应,计算基本矩阵,重建三维点。
vector_to_fundamental_matrix_distortion
给定一组图像点对应,计算基本矩阵和径向畸变系数,重建三维点。
vector_to_rel_pose
给定图像点对应关系和已知相机参数,计算两个相机之间的相对方向,重建三维空间点。

5.2 焦点深度

运算符列表

depth_from_focus
使用多个焦点级别提取深度。
select_grayvalues_from_channels
使用索引图像选择多通道图像的灰度值。

5.3 多视立体

本章包含用于多视图三维重建的操作符。

5.3.1.多视图三维重建的概念

通过多视图3D重建,可以使用来自多个摄像机的2D图像生成3D对象。它可以重建一个物体的完整3D表面,或单个3D点。
下面简要介绍重建曲面和点所需的步骤。请注意,校准良好的相机设置是精确3D重建的主要要求;参见校准了解更多细节。此外,在HDevelop示例中,reconstruct_surface_mixed_camera_types.Hdev,一个典型的校准工作流(从校准数据模型通过相机设置模型到立体模型)被执行。

1.生成立体模型:
首先,创建立体模型使用
create_stereo_model。
如果你想重建3D点,选择方法points_3d。

对于曲面的重建,可以使用surface_pairwise和surface_fusion方法。有关这两种方法的详细信息,请查看参考手册reconstruct_surface_stereo条目。

使用这三张二维图像进行表面重建,如下图所示。

(1)使用“surface_pairwise”进行曲面重建。

(2)使用“surface_fusion”进行曲面重建

(3)使用“surface_fusion”进行表面重建,从使用的二维图像中提取颜色信息。看一下HDevelop的例子reconstruct_surface_mixed_camera_types。查看3D重建过程。

2.设置图像对(仅用于表面重建):
对于三维曲面的重建,首先进行多次双目立体重建,然后进行组合。对于双目重建,必须指定图像对。例如,对于上面显示的三张图像,图像对可能是[0,1]和[1,2]。图像对必须使用
set_stereo_model_image_pairs,
并查询图像对
get_stereo_model_image_pairs。
更多信息请参见reconstruct_surface_stereo以及上述操作符。

3.修改立体模型参数:
对于
set_stereo_model_param,
可以优化3D重建的设置。
在重建表面时,强烈建议使用边界框限制3D重建,边界框尽可能紧密地围绕要重建的对象。

图中使用set_stereo_model_param设置的边界框限制了物体重构的区域,从而可以大大减少运行时间。

当在create_stereo_model中使用'surface_fusion'方法时,建议首先优化'surface_pairwise'方法的参数,因为它被用作基础。有关参数的更多详细信息,请参见示例

reconstruct_surface_stereo_pairwise_workflow.Hdev和reconstruct_surface_stereo_fusion_workflow.hdev。
使用命令查询已设置的参数:
get_stereo_model_param。

4.进行三维重建:
然后,要执行实际的重建,使用
reconstruct_points_stereo或
reconstruct_surface_stereo。

5.获得中间结果(仅用于表面重建):
注意,要查询这些中间结果,必须在执行重建之前使用set_stereo_model_param为立体模型启用“持久化”模式。

对于
get_stereo_model_object_model_3d,
你可以得到用reconstruct_surface_stereo重建的3D物体模型,作为使用方法“surface_fusion”的中间结果。

5.3.2.运算符列表

clear_stereo_model
释放立体模型的内存。
create_stereo_model
创建一个HALCON立体模型。
get_stereo_model_image_pairs
返回立体模型中设置的图像对列表。
get_stereo_model_object
获得立体重建的中间图像结果。
get_stereo_model_object_model_3d
获得中间三维物体模型的立体重建

get_stereo_model_param
获取立体模型参数。
reconstruct_points_stereo
从校准的多视点立体图像重建三维点。
reconstruct_surface_stereo
从校准的多视点立体图像重建表面。
set_stereo_model_image_pairs
指定用于表面立体重建的图像对。
set_stereo_model_param
设置立体模型参数。

5.4 光度立体

运算符列表

estimate_al_am

估计一个表面的反照率和环境光的量。
estimate_sl_al_lr
估计光源的倾斜度和表面的反照率。
estimate_sl_al_zc
估计光源的倾斜度和表面的反照率。
estimate_tilt_lr
估计光源的倾斜度。
estimate_tilt_zc
估计光源的倾斜度。

photometric_stereo
根据光度立体技术重建一个表面。
reconstruct_height_field_from_gradient
从表面梯度重建一个表面。
sfs_mod_lr
从灰度图像重建一个表面。
sfs_orig_lr
从灰度图像重建一个表面。
sfs_pentland
从灰度图像重建一个表面。
shade_height_field
为高度字段添加阴影。
uncalibrated_photometric_stereo
从几个不同照明的图像重建一个表面。

5.5 光片

运算符列表

apply_sheet_of_light_calibration

对输入的视差图像应用校准变换。
calibrate_sheet_of_light
使用3D校准对象校准光片设置。
clear_sheet_of_light_model
删除一个sheet-of-light模型并释放分配的内存。
create_sheet_of_light_calib_object
创建用于光片校准的校准对象。
create_sheet_of_light_model
创建一个模型,使用光片技术进行3d测量。
deserialize_sheet_of_light_model
反序列化光片模型。

get_sheet_of_light_param
获取参数的值,该参数已在光片模型中设置。
get_sheet_of_light_result
获得使用光片技术进行测量的标志性结果。
get_sheet_of_light_result_object_model_3d
获得校准测量的结果执行与光片技术作为一个3D对象模型。
measure_profile_sheet_of_light
处理作为输入的轮廓图像,并将产生的视差存储到光片模型中。

query_sheet_of_light_params
对于给定的光片模型,获取可用于不同光片操作符的通用图标或控制参数的名称。
read_sheet_of_light_model
从文件中读取一个光片模型并创建一个新模型。
reset_sheet_of_light_model
重置光片模型。
serialize_sheet_of_light_model
序列化光片模型。
set_profile_sheet_of_light
根据测量的光差设置光廓线。
set_sheet_of_light_param
设置光片模型的选定参数。

write_sheet_of_light_model
光片模型写入文件。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值