本人最近刚入visionpro与C#界面编程的坑,所以准备边学习边在此做个记录,并且与大家分享学习过程中遇到的困难与收获的心得,若存在错误以及不足之处,请多多指教。
注
1 本次项目中并不需要在visionPro中编写脚本,若后续有脚本辅助,会在此提醒。
2 流程图中的连线,最好是设置完一个工具再连下一个,这样的话会方便自己理解,一步一个脚印
确定流程
首先,确定项目需求,需求为:检测输入图像中的某条线段,并且图像如何旋转,依旧能够检测出该条线段。所以可以分为如下步骤实现该需求。
1.旋转图像
2.模板匹配—标定—坐标系定位 (为了确定一个坐标系的基准,确保图像无论如何旋转,都可以得到当前坐标系与基准坐标系的变换关系)
3.检测线段
流程图如下所示:
1.旋转图像
图像旋转:
第一步:加载想要旋转的图像,在这里用了“CogImageFileTool”工具,CogImageFileTool主要的作用就是加载本地图像或者保存最终图像至本地的某个位置。
第二步:用到了仿射变换工具“CogAffineTransformTool”。
首先设置区域形状(就是一个包含目标图像的矩形框),我这里用的是CogRectangleAffine,作用就是框选想要进行仿射变换的区域。
因为仿射变换做旋转,本质是对这个框做旋转,只不过这个框在旋转前后,在输出图像中是看不到的(这一点我说的也有些迷糊,实际操作几次就都明白了),反正就是框逆时针旋转30°,对应的图像看起来是顺时针旋转了30°(就是坐标系发生了改变)
工具界面中有一个区域,名为选择模式,注意当前选择的是原点、中心、还是3点。我这里选择的是中心,框的中心就是图像的中心,框的边长就是图像的边长。旋转和倾斜暂时设为 0 就行。
这是可以设置一下旋转为30(deg是角度制,rad是弧度制),点击左上角运行,可以发现右面显示区域Current.InputImage中的框变成了这样。