转战Halcon日记【7】-- 区域集合变换
区域的集合变换包括区域的移动,区域的放大缩小,区域的镜像,区域的转置,以及区域的极坐标变换(我下一篇的例子也是关于极坐标变化的)
这次先上代码
*生成一个椭圆区域
gen_ellipse (ROI_0, 462.938, 481.418, rad(-52.3331), 289.978, 46.4835)
*区域移动
*第一个参数是需要移动的区域,第二个参数是移动后的区域
*第三个参数是移动的row坐标(相对值),第四个参数是移动的column坐标(相对值)
move_region(ROI_0, RegionMoved, 0, 300)
*区域放大缩小
*第一个参数是需要放大缩小的区域,第二个参数是放大缩小后的区域
*第三个参数是放大缩小宽的倍数,第四个参数是放大缩小的倍数
*需要注意的是,这个缩小不仅形状变化,而且中心点的坐标也跟着变化
zoom_region(RegionMoved, RegionZoom, 0.5, 0.5)
*生成一条直线
gen_region_line (ROI_1, 110.504, 851.189, 1101.3, 854.094)
*镜像区域
*第一个参数是需要镜像的区域,第二个参数是镜像后的区域
*第三个参数表示是水平镜像还是垂直镜像,'row'代表水平镜像,'column'表示垂直镜像
*第四个参数表示镜像直线的row坐标或者column坐标的2倍!!!!!(2倍是关键,记住就行,大坑)
mirror_region(RegionZoom, RegionMirror, 'column', 850*2)
*转置区域
*第一个参数是需要转置的区域,第二个参数是转置后的区域
*第三个参数是镜像点的row,第四个参数是镜像点的column
transpose_region(RegionZoom, Transposed, 500, 500)
图像变化过程
1.区域移动
2.区域缩小放大
3.区域镜像
4.区域镜像
上个界面截图