- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2D 图像拼接
Shaojie Xu | 2020/08/24
1 © 2020 Cognex Confidential
2D Image Stitch
2 © 2020 Cognex Confidential
2D图像拼接的3种情景
1. 一只相机取像位置固定,或者多只相机固定位置拍图,硬拷贝拼图,采用CopyRegion
工具实现
2. 一只或多只相机在多个位置拍照,相机视野互相重叠,基于Patmax特征定位后,无缝
拼图;采用CogImageStitch类实现;
3. 一只或多只相机在多个位置拍照,相机视野只有小范围重叠,或者不重叠,无法使用
Patmax特征定位,可以用标定板标定位置关系,使用CogImageStitch类实现拼图.注意此
方法是是预先标定的位置关系,如果采用1只相机多个位置拍摄,需要机构保证重复运动
的精度在允许范围内,否则可能造成图像错位。
注意:无论是哪种拼接方式,单相机或是多相机拍照,都需要尽量调节到同一个高度拍
照,否则可能造成图像重影,模糊等问题;
3 © 2020 Cognex Confidential
1. CopyRegionTool硬拷贝拼图
• 请参考QuickBuild自带例程:
Script_Stitch_Job.vpp
• 在CogJob的作业属性-取像脚本中实现多张图像拷
贝拼接
• 注意CopyRegion工具的属性,
DesinationImageAlignmentX和Y用于指定子图像
在拼接大图的位置偏移
4 © 2020 Cognex Confidential
2.基于互相重叠的Patmax特征无缝拼接
• 请参考“TB_Patmax算法拼.vpp”;此VPP实现3张图像上下拼接,其他拼接组合可以自行改写程序
• 流程:
1)添加Patmax工具,训练各个重叠特征;注意相邻的两张图同样的特征使用同一个Patmax工具即可;
2)载入第一张图像,运行整个CogJob ,将图像给到TB_Stitch的Image1,Patmax定位结果给到
Image1Pose1;注意不要用连线;
3)对其他图像重复同样的工作,中间的图像有两个PMA结果,需要连接2个Pose;
4)TB_Stitch输出的图像即为拼接后图。
5 © 2020 Cognex Confidential
如果不是在Quickbuild中,
写C#代码直接给入接口即可。
6 © 2020 Cognex Confidential
这里CogImageStitch类使用的方法:
1)AllocateBlendingBuffer ,指定图像大小为拼接后图的尺寸,Transform不需要特别设置,在(0,0)附近即可,Scale为1;
2)分别为3张图建立CogTransform2DLinear;第一个Transform建立在(0,0)位置, 其他图Transform关系依次Compose 前一个相
邻Pose的Invert,因为后一个是依据前一个的位置关系来偏移的。以上下3张图拼接为例,就建立了图示的关系;
3)将图像和Tansform关系分别传入不同的CogFixtureTool ,在图像中添加对应的坐标系。注意坐标系名称不能一样;或者用代
码AddSpace手动添加坐标系也可以;
4)生成的带新坐标系的图像传入CogImageStitch工具,用BlendImageIntoBuffer方法,会将每张图像对应添加到拼接大图的对
应位置。
5)调用FillDestinationImageFromBuffer来生成拼接图。完成。
注意BlendImageInfoBuffer和OverwriteImage两种方法的区别,Overwrite在像素重叠部分是互相覆盖了,而Blend模式是按照不
同权重混合起来,因此更接近无缝拼接。
7 © 2020 Cognex Confidential
3.标定板提前标
文档评论(0)