转战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.区域镜像

 

 

 

 上个界面截图

 

 

posted @ 2022-07-02 16:52  gammalog  阅读(493)  评论(0编辑  收藏  举报