QQ登录

只需一步,快速开始

halcon projective_trans_region函数介绍

[ 复制链接 ]
projective_trans_region(Regions : TransRegions : HomMat2D, Interpolation : )
函数用齐次矩阵HomMat2d对Regions进行投影变换,结果保存TransRegions 。
有关此矩阵的创建和解释细节,请参见projective_trans_image。


使用的坐标系与affine_trans_pixel中的坐标系相同。
这意味着实际上应用的不是HomMat2D,而是修改后的版本。
因此,应用projective_trans_region对应于下面的转换链,
它应用于区域的每一点(Row_i, Col_i)(输入和输出像素为齐次向量):


2019-05-12_134959.jpg

因此,当您基于从区域派生的坐标(例如area_center之类的操作符)创建投影转换时,
可能会得到意想不到的结果。
例如,如果使用这个运算符计算旋转对称区域的重心,
然后使用hom_mat2d_rotate将该区域绕该点旋转,
得到的区域将不会位于原来的区域上。
在这种情况下,您可以通过在projective_trans_region中使用HomMat2D之前,
将以下转换应用于HomMat2D来补偿这种效果:
hom_mat2d_translate(HomMat2D, 0.5, 0.5, HomMat2DTmp)
  hom_mat2d_translate_local(HomMat2DTmp, -0.5, -0.5, HomMat2DAdapted)
  projective_trans_region(Region, TransRegion, HomMat2DAdapted, 'bilinear')

例程:
read_image (Image, 'printer_chip/printer_chip_01')
threshold (Image, Region, 140, 255)
connection (Region, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 10000, 100000)
select_obj (SelectedRegions, ObjectSelected, 1)


get_image_size (Image, Width, Height)
area_center (ObjectSelected, Area, Row, Column)
orientation_region (ObjectSelected, Phi)
vector_angle_to_rigid (Row, Column, Phi, Height/2, Width/2, Phi, HomMat2D)
projective_trans_region (ObjectSelected, TransRegions,HomMat2D , 'bilinear')


dev_display (Image)
dev_display (ObjectSelected)
dev_display (TransRegions)


  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索