halcon 区域的仿射变换

*区域的仿射变换
*affine_trans_region函数不能独自操作,需要为其提供交换所需的交换模型,
*这些变换模型可以了解halcon所对应的变换操作,如旋转、比例缩放、拉伸等操作,
*具体可以参见下面的交换流程,这些二维变换操作能够帮忙我们是想区域的任意变换操作
                       *-hom_mat2d_rotate(旋转)
                       *-hom_mat2d_scale (缩放)
*hom_mat2d_identity--->-                      ------>affine_trans_region
                       *-hom_mat2d_translate (平移)
                       *-hom_mat2d_slant (斜切)
*这里我们提供一个例子,简述二维任意变换的一个简要操作,同时需要留意是矩形的二维变换提供了三个函数,
*首先需要创建一个二维变换矩阵,然后对该矩阵进行旋转变换,之后再进行缩放交互操作
*完成之后通过调用affine_trans_region函数获取任意二维变换的转换操作
                       
dev_get_window(WindowHandle)
draw_region(Region,WindowHandle)
*构建齐次二维变换矩阵
*定义一个对角为 1 的 单位矩阵,它和任何矩阵相乘等于原矩阵本身。
hom_mat2d_identity(HomMat2DIdentity)
*在变换矩阵中添加旋转
*原型为hom_mat2d_rotate( : : HomMat2D, Phi, Px, Py : HomMat2DRotate)
hom_mat2d_rotate(HomMat2DIdentity,1.57,256,256,HomMat2DRotate)
**在变换矩阵中添加缩放
*原型为hom_mat2d_scale( : : HomMat2D, Sx, Sy, Px, Py : HomMat2DScale)
hom_mat2d_scale(HomMat2DRotate,1.5,1.5,256,256,HomMat2DScale)
*变换
*原型为affine_trans_region(Region : RegionAffineTrans : HomMat2D, Interpolate : )
affine_trans_region(Region,RegionAffineTrans,HomMat2DScale,'nearest_neighbor')
dev_clear_window()
dev_set_draw('margin')
dev_set_color('red')
dev_display(Region)
dev_set_color('green')
dev_display(RegionAffineTrans)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值