Halcon区域几何变换和仿射变换
Halcon区域几何变换和仿射变换
- 一.Halcon区域几何变换
- 1.move_region 平移
- 2.zoom_region 缩放
- 3.mirror_region 镜像
- 4.transpose_region 倒置
- 二.Halcon仿射变换
- 1.affine_trans_region(区域的任意变换)
- 2.hom_mat2d_identity(创建二位变换矩阵)
- 3.hom_mat2d_translate(平移)
- 4.hom_mat2d_scale(缩放)
- 5.hom_mat2d_rotate(旋转 )
- 6.vector_angle_to_rigid(刚性放射变换)
- 7.affine_trans_image(扩展图像变换)
一.Halcon区域几何变换
1.move_region 平移
算子参数:
move_region(Region : RegionMoved : Row, Column : )
1.Region(输入要移动的区域)
2.RegionMoved(输出移动后区域)
3.Row(输入要移动区域的向量的行距离 point.y )
4.Column(输入要移动区域的向量的列距离 point.x)
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
dev_set_draw ('margin')
dev_clear_window ()
* Draw with the mouse an arbitrary region into the window
draw_region (Region, WindowID)
area_center (Region, Area, Row1, Column1)
Button := 1
while (Button == 1)* 获取鼠标点击的坐标get_mbutton (WindowID, Row, Column, Button)*两个坐标相减得出要平移的距离move_region (Region, RegionMoved, Row - Row1, Column - Column1)
endwhile
效果图:
2.zoom_region 缩放
算子参数:
zoom_region(Region : RegionZoom : ScaleWidth, ScaleHeight : )
1.Region(输入要缩放的区域)
2.RegionZoom(输出缩放后区域)
3.ScaleWidth(输入x 方向的要缩放的比例)
4.ScaleHeight(输入y 方向的要缩放的比例)
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
*画一个区域
draw_region (Region, WindowID)
*对图像进行放大两倍
zoom_region (Region, RegionZoom, 3, 3)
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (RegionZoom)
效果图:
3.mirror_region 镜像
算子参数:
mirror_region(Region : RegionMirror : Mode, WidthHeight : )
1.Region(输入要镜像的区域)
2.RegionMirror(输出镜像后区域)
3.Mode(输入对称轴, 'column‘ 或者 ‘row’)
4.WidthHeight(输入对称轴坐标的两倍,也就是窗口的宽或者高)
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
* Draw with the mouse an arbitrary region into the window
draw_region (Region, WindowID)
mirror_region (Region, RegionMirror1, 'row', 512)
mirror_region (Region, RegionMirror2, 'column', 512)
mirror_region (RegionMirror2, RegionMirror3, 'row', 512)
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (RegionMirror1)
dev_set_color ('blue')
dev_display (RegionMirror2)
dev_set_color ('magenta')
dev_display (RegionMirror3)
效果图:
4.transpose_region 倒置
算子参数:
transpose_region(Region : Transposed : Row, Column : )
1.Region(输入要倒置的区域)
2.Transposed(输出倒置后区域)
3.Row(输入参考点的行坐标 point.y )
4.Column(输入参考点的列坐标 point.x )
实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
* 自定义画一个区域
draw_region (Region, WindowID)
*根据256,256这个坐标进行倒置
transpose_region (Region, Transposed, 256, 256)
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (Transposed)
效果图:
二.Halcon仿射变换
1.affine_trans_region(区域的任意变换)
算子说明:
affine_trans_region对给出的区域应用任意仿射二维变换,即缩放、旋转、平移和倾斜(倾斜),并返回变换后的区域。
算子参数:
affine_trans_region(Region : RegionAffineTrans : HomMat2D, Interpolate : )
1.Region(输入要变换的区域)
2.RegionAffineTrans(输出转换后的区域)
3.HomMat2D(输入输入变换矩阵)
4.Interpolate(输入是否使用插值进行转换) 列表:‘constant’、‘nearest_neighbor’
2.hom_mat2d_identity(创建二位变换矩阵)
算子说明:
hom_mat2d_identity生成当前描述相同二维变换 的齐次变换矩阵
算子参数:
hom_mat2d_identity( : : : HomMat2DIdentity)
1 .HomMat2DIdentity(输出变换矩阵)
3.hom_mat2d_translate(平移)
算子参数:
hom_mat2d_translate( : : HomMat2D, Tx, Ty : HomMat2DTranslate)
1.HomMat2D(输入变换矩阵)
2.Tx(输入沿 x 轴平移多少)
3.Ty(输入沿 y 轴平移多少)
4.HomMat2DTranslate(输出变换后矩阵)
4.hom_mat2d_scale(缩放)
算子参数:
hom_mat2d_scale( : : HomMat2D, Sx, Sy, Px, Py : HomMat2DScale)
1.HomMat2D(输入变换矩阵)
2.Sx(输入沿 x 轴的缩放比例)
3.Sy(输入沿 y轴的缩放比例)
4.Px(输入变换的固定点(x 坐标))
5.Py(输入变换的固定点(y 坐标))
6.HomMat2DScale(输出变换矩阵)
5.hom_mat2d_rotate(旋转 )
算子参数:
hom_mat2d_rotate( : : HomMat2D, Phi, Px, Py : HomMat2DRotate)
1.HomMat2D(输入输入变换矩阵)
2.Phi(输入旋转角度)
3.Px(输入变换的固定点(x 坐标))
4.Py(输入变换的固定点(y 坐标))
5.HomMat2DRotate(输出变换矩阵)
综合实例:
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
dev_set_color ('black')
* Draw with the mouse an arbitrary region into the window
draw_region (Region, WindowID)
*根据当前区域创建矩阵
hom_mat2d_identity (HomMat2DIdentity)
*旋转
hom_mat2d_rotate (HomMat2DIdentity, -0.3, 256, 256, HomMat2DRotate)
*缩放
hom_mat2d_scale (HomMat2DRotate, 1.5, 1.5, 256, 256, HomMat2DScale)
*平移
hom_mat2d_translate (HomMat2DScale, 64, 64, HomMat2DTranslate)affine_trans_region (Region, RegionAffineTrans, HomMat2DTranslate, 'nearest_neighbor')
dev_clear_window ()
dev_set_draw ('margin')
dev_set_color ('red')
dev_display (Region)
dev_set_color ('green')
dev_display (RegionAffineTrans)
图像效果:
6.vector_angle_to_rigid(刚性放射变换)
算子说明:
vector_angle_to_rigid从点对应和两个对应角度计算刚性仿射变换,即由旋转和平移组成的变换,并将其作为齐次变换矩阵返回。
算子参数:
vector_angle_to_rigid( : : Row1, Column1, Angle1, Row2, Column2, Angle2 : HomMat2D)
1.Row1(输入原点的行坐标) point.y
2.Column1(输入原点的列坐标) point.x
3.Angle1(输入原点的角度)
4.Row2(输入变换点的行坐标) point.y
5.Column2(输入变换点的列坐标) point.x
6.Angle2(输入变换点的角度)
7.HomMat2D(输出输出变换矩阵)
7.affine_trans_image(扩展图像变换)
算子说明:
affine_trans_image对给出的图像应用任意仿射二维变换,即缩放、旋转、平移和倾斜(倾斜),并返回变换后的图像
算子参数:
affine_trans_image(Image : ImageAffineTrans : HomMat2D, Interpolation, AdaptImageSize : )
1.Image(输入要变换的图像)
2.ImageAffineTrans(输出变换后图像)
3.HomMat2D(输入变换矩阵)
4.Interpolation(输入插值类型)值列表:‘bicubic’、‘bilinear’、‘constant’、‘nearest_neighbor’、‘weighted’
5.AdaptImageSize(输入是否调整结果图像的大小)值列表:“false”、“true”
Halcon区域几何变换和仿射变换相关推荐
- halcon中相似变换、仿射变换、投影变换的区别以及应用方式和例程
在机器视觉系统中,镜头是重要成像部件之一,而基于小孔成像原理的工业镜头往往会产生透视畸变现象,如何校正畸变是进行图像分析的前提 ,这其中就会用到投影变换,也是几何变换的一种.除此之外,图像处理中常用到 ...
- Halcon:二维仿射变换实例探究
二维仿射变换,顾名思义就是在二维平面内,对对象进行平移.旋转.缩放等变换的行为(当然还有其他的变换,这里仅论述这三种最常见的). Halcon中进行仿射变换的常见步骤如下: ① 通过hom_mat2d ...
- halcon区域腐蚀膨胀算子_超越halcon速度的二值图像的腐蚀和膨胀,实现目前最快的半径相关类算法(附核心源码)。...
超越halcon速度的二值图像的腐蚀和膨胀,实现目前最快的半径相关类算法(附核心源码). 发布时间:2019-03-20 12:32, 浏览次数:1259 , 标签: halcon 我在两年前的博客里 ...
- halcon区域腐蚀膨胀算子_Halcon算子
Halcon部分算子功能:*读取一张图像 read_image(Image,'C:/Users/Desktop/无标题.png') *画一个矩形生成区域 draw_rectangle1(3600, R ...
- 【计算机视觉】OpenCV篇(3) - 图像几何变换(仿射变换/透视变换)
图像的几何变换从原理上看主要包括两种:基于2×3矩阵的仿射变换(平移.缩放.旋转和翻转等).基于3×3矩阵的透视变换. 仿射变换 基本的图像变换就是二维坐标的变换:从一种二维坐标(x,y)到另一种二 ...
- halcon区域腐蚀膨胀算子_Halcon 形态学膨胀腐蚀应用举例
上图中有一个硬币和一把钥匙,要求:计算出硬币的面积和中心坐标 第一步用灰度直方图选出硬币的区域:threshold (GrayImage, Regions, 110, 250) 第二步用开运算去掉图像 ...
- halcon区域腐蚀膨胀算子_OpenCV 图像处理之膨胀与腐蚀
1.什么是膨胀与腐蚀 膨胀与腐蚀属于形态学范围,具体的含义根据字面意思来理解即可.但是更形象的话就是"增肥"与"减肥". 它们的用途就是用来处理图形问题上.总结 ...
- halcon 区域 inner_rectangle1 smallest_rectangle1 smallest_rectangle2
*如果需要根据方位调整角度,则需要使用smallest_rectangle2 read_image(Image,'pellets') dev_set_color('white')//设置颜色为白色 d ...
- halcon 区域 inner_circle smallest_circle
*将condition设为1和非1运行效果对比 read_image(Image,'rings_and_nuts') dev_set_colored(6) condition:=1 //将condit ...
最新文章
- 探讨ASP.NET 2.0中的Web控件改进技术(3)
- ultraMaskedEdit使用心得
- Android native 开发总结
- Js 控件编写 继承:extend、mixin和plugin(一)
- uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能
- 山东计算机类好的民办大学,2021年山东所有民办大学名单及排名(教育部)
- 【剑指offer】面试题29:顺时针打印矩阵(Java)
- C++学习系列笔记(四)
- bzoj1132:[POI2008]Tro
- WeUI 专为微信Web服务量身定制
- VBA函数定义及说明
- 【前端实用工具集】js对url进行编码和解码的三种方式
- ERROR: Cannot uninstall ‘PyYAML’. It is a distutils installed project and thus we cannot accurately
- 《乔布斯的魔力演讲》读书笔记
- 极客时间《数据分析实战45讲 - 基础篇》学习笔记
- html编写花,HTML5的花儿
- Lesson 20 One man in a boat 独坐孤舟
- 微信公众号推文各标签含义
- CSS——网易云音乐首页之榜单区域的实现
- python3+itchat实战