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区域几何变换和仿射变换相关推荐

  1. halcon中相似变换、仿射变换、投影变换的区别以及应用方式和例程

    在机器视觉系统中,镜头是重要成像部件之一,而基于小孔成像原理的工业镜头往往会产生透视畸变现象,如何校正畸变是进行图像分析的前提 ,这其中就会用到投影变换,也是几何变换的一种.除此之外,图像处理中常用到 ...

  2. Halcon:二维仿射变换实例探究

    二维仿射变换,顾名思义就是在二维平面内,对对象进行平移.旋转.缩放等变换的行为(当然还有其他的变换,这里仅论述这三种最常见的). Halcon中进行仿射变换的常见步骤如下: ① 通过hom_mat2d ...

  3. halcon区域腐蚀膨胀算子_超越halcon速度的二值图像的腐蚀和膨胀,实现目前最快的半径相关类算法(附核心源码)。...

    超越halcon速度的二值图像的腐蚀和膨胀,实现目前最快的半径相关类算法(附核心源码). 发布时间:2019-03-20 12:32, 浏览次数:1259 , 标签: halcon 我在两年前的博客里 ...

  4. halcon区域腐蚀膨胀算子_Halcon算子

    Halcon部分算子功能:*读取一张图像 read_image(Image,'C:/Users/Desktop/无标题.png') *画一个矩形生成区域 draw_rectangle1(3600, R ...

  5. 【计算机视觉】OpenCV篇(3) - 图像几何变换(仿射变换/透视变换)

    图像的几何变换从原理上看主要包括两种:基于2×3矩阵的仿射变换(平移.缩放.旋转和翻转等).基于3×3矩阵的透视变换.  仿射变换 基本的图像变换就是二维坐标的变换:从一种二维坐标(x,y)到另一种二 ...

  6. halcon区域腐蚀膨胀算子_Halcon 形态学膨胀腐蚀应用举例

    上图中有一个硬币和一把钥匙,要求:计算出硬币的面积和中心坐标 第一步用灰度直方图选出硬币的区域:threshold (GrayImage, Regions, 110, 250) 第二步用开运算去掉图像 ...

  7. halcon区域腐蚀膨胀算子_OpenCV 图像处理之膨胀与腐蚀

    1.什么是膨胀与腐蚀 膨胀与腐蚀属于形态学范围,具体的含义根据字面意思来理解即可.但是更形象的话就是"增肥"与"减肥". 它们的用途就是用来处理图形问题上.总结 ...

  8. halcon 区域 inner_rectangle1 smallest_rectangle1 smallest_rectangle2

    *如果需要根据方位调整角度,则需要使用smallest_rectangle2 read_image(Image,'pellets') dev_set_color('white')//设置颜色为白色 d ...

  9. halcon 区域 inner_circle smallest_circle

    *将condition设为1和非1运行效果对比 read_image(Image,'rings_and_nuts') dev_set_colored(6) condition:=1 //将condit ...

最新文章

  1. 探讨ASP.NET 2.0中的Web控件改进技术(3)
  2. ultraMaskedEdit使用心得
  3. Android native 开发总结
  4. Js 控件编写 继承:extend、mixin和plugin(一)
  5. uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能
  6. 山东计算机类好的民办大学,2021年山东所有民办大学名单及排名(教育部)
  7. 【剑指offer】面试题29:顺时针打印矩阵(Java)
  8. C++学习系列笔记(四)
  9. bzoj1132:[POI2008]Tro
  10. WeUI 专为微信Web服务量身定制
  11. VBA函数定义及说明
  12. 【前端实用工具集】js对url进行编码和解码的三种方式
  13. ERROR: Cannot uninstall ‘PyYAML’. It is a distutils installed project and thus we cannot accurately
  14. 《乔布斯的魔力演讲》读书笔记
  15. 极客时间《数据分析实战45讲 - 基础篇》学习笔记
  16. html编写花,HTML5的花儿
  17. Lesson 20 One man in a boat 独坐孤舟
  18. 微信公众号推文各标签含义
  19. CSS——网易云音乐首页之榜单区域的实现
  20. python3+itchat实战

热门文章

  1. 软件设计的哲学:第十一章 两次设计
  2. 小爱同学、Blinker 控制esp32自带灯熄灭---Micropython版本
  3. 做网络爬虫需要掌握哪些技术?
  4. 吕鑫MFC学习系列九
  5. 使用python生成crc对照表
  6. 方波信号发生器电路仿真,小波神经网络算法原理
  7. Java变量_字符类型
  8. 阿里巴巴程序员常用的 15 款开发者工具
  9. php英文插件教程,迅睿CMS 优速:百度翻译插件教程
  10. 百钱买百鸡C语言详解