背景
摆正的思路就是,先去一个获取一个正的模板。读取的图片可能是偏的。不动的是模板,移动的是图片。
* 图像摆正
area_center(SearchImage, Area, Row2, Column2)vector_angle_to_rigid (RowMatch, ColumnMatch, AngleMatch, Row2, Column2, 0, MovementOfModel)affine_trans_image (SearchImage, ImageAffineTrans, MovementOfModel,
'constant', 'false')
所以这次,在算子vector_angle_to_rigid 中,模板匹配得到的坐标放在前面(谁动,谁放在前面),而图片坐标放在后面。如果只考虑摆正,这里其实有用的只是角度。
这个是,我在 【halcon】模板匹配和仿射变换总结
中写道的。
最近做到一个项目时,发现 “如果只考虑摆正,这里其实有用的只是角度” 这句话有些问题。
如果不能正确的设置 前后的 Row , Column 参数,会导致图片绕着一个未知的点旋转,有时会导致你的关注的区域旋转的导出跑,甚至跑出图片。
解决方案
所以,需要给定一个中心点,绕着这个中心进行旋转,图片就不会跑偏。
* 图像摆正
area_center(SearchImage, Area, Row, Column)vector_angle_to_rigid (Row, Column, AngleMatch, Row, Column, 0, MovementOfModel)affine_trans_image (SearchImage, ImageAffineTrans, MovementOfModel, 'constant', 'false')
这里把前后的Row, Column都设置成了图片中心,这样着旋转就会绕图片中心旋转,这样图片就不会乱跑了。