20-Halcon机器视觉实例入门:图像几何变换-3D旋转

图像几何变换-3D图像旋转

在Halcon中,通过projective_trans_imagehom_mat3d_projecthom_mat3d_translate等算子来实现图像的3D旋转。

示例代码如下:

* This program shows how to use hom_mat3d_project and
* projective_trans_image to rotate an image in 3D.
dev_update_pc ('off')
dev_update_window ('off')
dev_update_var ('off')
read_image (Image, 'mreut')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)

*Iter := 1440

* 设置旋转角度参数
DAlpha := 1.1
DBeta := 1.3
DGamma := 1.7

Alpha := 60.0
Beta := 0.0
Gamma := 0.0

* 设置相机参数
PrincipalRow := Height / 2
PrincipalColumn := Width / 2
Focus := (Width + Height) / 2
M := 8
N := 3

H := Height / 4.0
W := Width / 4.0
D := (Width + Height) / 6.0
* 3D旋转矩阵参数
hom_mat3d_identity (HomMat3D)
hom_mat3d_rotate (HomMat3D, rad(Gamma), 'z', PrincipalRow, PrincipalColumn, Focus, HomMat3D)
hom_mat3d_rotate (HomMat3D, rad(Beta), 'y', PrincipalRow, PrincipalColumn, Focus, HomMat3D)
hom_mat3d_rotate (HomMat3D, rad(Alpha), 'x', PrincipalRow, PrincipalColumn, Focus, HomMat3D)
  
T := rad(100.0 / 4.0)
X := H * (cos(N * T) + 0.5 * cos(M * T) * cos(N * T))
Y := W * (sin(N * T) + 0.5 * cos(M * T) * sin(N * T))
Z := D * sin(M * T)
hom_mat3d_translate (HomMat3D, X, Y, Z, HomMat3D)
hom_mat3d_project (HomMat3D, PrincipalRow, PrincipalColumn, Focus, ProjectionMatrix)
* 旋转图像
projective_trans_image (Image, TransImage, ProjectionMatrix, 'bilinear', 'false', 'false')
 

原始图像:
在这里插入图片描述
程序运行结果:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

视觉与物联智能

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

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

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

打赏作者

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

抵扣说明:

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

余额充值