halcon实现ICP算法

read_object(Title_MapX,'./data/ho_Title_MapX.hobj')
read_object(Title_MapY,'./data/ho_Title_MapY.hobj')
get_image_size (Title_MapX, Width, Height)
gen_image_const (Image, 'real', Width, Height)
Id_Row:=0
get_contour_from_xy_COPY_1 (Title_MapX, Title_MapY, Contour, Id_Row, Rows, Columns)

get_contour_xld (Contour, y, x)
Indices := [y [<] 0] 
tuple_find (Indices, 1, Indices)
y := y[Indices]
x := x[Indices]
gen_contour_polygon_xld (Contour1, y, x)
X_Model:=x
Y_Model:=y

hom_mat2d_identity (HomMat2D)
hom_mat2d_translate (HomMat2D, -10, -20, HomMat2D)
hom_mat2d_rotate (HomMat2D, rad(-90), 0, 0, HomMat2D)
affine_trans_contour_xld (Contour1, Contour2, HomMat2D)
get_contour_xld (Contour2, y2, x2)
X_Index:=x2
Y_Index:=y2

*误区   a和b  !=  Y_ModelOut和X_ModelOut,容易想当然的认为,
* area_center_xld (Contour2, Area, a, b, PointOrder)
* get_contour_xld (Contour2, Y_ModelOut, X_ModelOut)
* tuple_mean (X_ModelOut, Model_CenterX)
* tuple_mean (Y_ModelOut, Model_CenterY)
*迭代终止没加
itermax:=20
for iter := 1 to itermax by 1
    *有效解决,二维icp算法
    hom_mat2d_transform_icp (X_Model, Y_Model, X_Index, Y_Index, HomMat2D)
    *有效解决,对应点求解变换关系
*   vector_to_hom_mat2d (X_Index, Y_Index, X_Model, Y_Model, HomMat2D)
    affine_trans_contour_xld (Contour1, Contour_index, HomMat2D)
    affine_trans_point_2d (HomMat2D, X_Index, Y_Index,  X_Index, Y_Index)
endfor
https://download.csdn.net/download/qq_22904277/10593661

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值