++在 HALCON 中,透视变换矩阵用于将图像从一个视角转换到另一个视角,常用于图像校正和几何变换++
原图:
生成一个透视矩阵
hom_vector_to_proj_hom_mat2d (Row, Col, [1,1,1,1], [75,360,360,75], [110,110,360,360],[1,1,1,1] , 'normalized_dlt', HomMat2D)

- Px:标注投影的起始点列坐标 至少4个(原先图的4个角的row坐标) 按照顺序去写几个点坐标
- Py:标注投影的起始点行坐标 至少4个(原先图的4个角的Col坐标) 按照顺序去写几个点坐标
- Pw:起始点权重元素为[1,1,1,1]或者[0,0,0,0]
- Qx:目标点列坐标 至少4个
- Qy:目标点行坐标 至少4个
- Qw:目标点权重
- Method:计算方式 normalized_dlt 标准的计算法
- HomMat2D:得到的仿射矩阵
代码里的Row和Col:
得到的仿射矩阵:
使用透视矩阵
projective_trans_image (Image, TransImage, HomMat2D, 'bilinear', 'false', 'false')

- Image:要进行变换的输入图像
- TransImage:变换后的输出图像
- HomMat2D:3×3的齐次投影变换矩阵
- Interpolation:插值方法('constant': 常数插值;'nearest_neighbor': 最近邻插值;'bilinear': 双线性插值(默认);'weighted': 加权插值)
- AdaptImageSize:是否调整输出图像大小以适应变换结果('true': 自动调整;'false': 保持原尺寸(默认))
- TransformDomain:是否对图像区域也进行变换('true': 变换区域;'false': 不变换区域(默认))
效果图: