当前位置: 首页 > news >正文

Halcon常用算子(库函数)整理

目录

  • 一. 常规操作类
    • 1.1 tuple_length()
    • 1.2 tuple_find_first()
    • 1.3 tuple_gen_const()
  • 二. 机器视觉操作类
    • 2.1 read_image()
    • 2.2 get_image_size()
    • 2.3 intensity()
    • 2.4 zoom_image_factor()
    • 2.5 median_image()
    • 2.6 Gauss_filter()
    • 2.7 fft_generic()
    • 2.8 convol_fft()
    • 2.9 sub_image()
    • 2.10 binary_threshold()
    • 2.11 area_center()
    • 2.12 select_shape()
    • 2.13 connection()
    • 2.14 closing_circle()
    • 2.15 overpaint_region()
    • 2.16 union1 ()
    • 2.17 threshold()
    • 2.18 crop_part()

新手在刚接触Halocon时往往不明所以,而官方文档上的解释又让初学者云里雾里,本文整理了halocon常用算子(库函数),供开发者快速查阅。

一. 常规操作类

1.1 tuple_length()

tuple_length(Area0,len)

数组里元素的个数

1.2 tuple_find_first()

tuple_find_first(Area0,sMax,i)

找到第一个是sMax的,返回索引

1.3 tuple_gen_const()

创建数组 tuple_gen_const( : : Length, Const : Newtuple)

二. 机器视觉操作类

2.1 read_image()

读取图片

2.2 get_image_size()

获取图片尺寸

2.3 intensity()

Regions (input_object) region(-array) → object
Regions in which the features are calculated.
计算特征的区域。

Image:输入灰度图
Mean:输出区域的平均灰度值
Deviation:输出区域内灰度值的偏差。

2.4 zoom_image_factor()

zoom_image_factor(Image, ImageZoomed, 0.15, 0.125, ‘constant’)

高斯降采样。

2.5 median_image()

median_image (Image, ImageMedian, ‘circle’, 2, ‘mirrored’)
Image:输入图像
ImageMedian:输出图像
参数3:掩码的形状 ‘circle’ 圆; ‘square’ 正方形
参数4: 掩码半径
参数5:边界处理。建议值: ‘mirrored’, ‘cyclic’, ‘continued’, 0, 30, 60, 90, 120, 150, 180, 210, 240, 255

2.6 Gauss_filter()

gauss_filter (Image, ImageGauss, 9)
Image:输入图像
ImageGauss:输出图像
参数3:过滤器大小;建议值: 3, 5, 7, 9, 11

2.7 fft_generic()

空间域和频域之间的转换,主要有如下两个关键算子rft_generic()、fft_generic()。
这两个算子的共同点:
1.这两个算子都是进行快速傅里叶变换的算子
2.这两个算子都可以进行空间域-》频域和频域-》空间域的变换,只需要针对参数Direction分别进行选择,‘to_freq’是进行的是空间域-》频域的变换,‘from_freq’是频域-》空间域的变换。
3.rft_generic算子的输入图像是实值函数,fft_generic的输入图像是复数函数;从输出的结果来看,rft_generic只需要计算和存储了左半边的复数图像信息就可以了,因为右半边是共轭对称的。因此从最终的输出我们可以看到,只有左上和左下有DC成分。而fft_generic如果设定的是原点在左上角,那么就会在四个角上有DC成分。
4.fft_generic算子可以通过参数Mode设置原点的位置:如果设置的是’dc_edge’,那么原点在左上角;如果设置的是’dc_center’,那么就会将原点平移到中心位置。fft_generic算子一般会设置为’dc_center’。对于rft_generic算子,因为没有设置项,所以默认原点位置为左上角。
5.针对同一个图像,进行空间域-》频域、频域-》空间域的转换的时候,如果使用的是rft_generic算子,那么两个转换就都使用该算子;如果使用的是fft_generic算子,那么两个转换也都使用该算子,在对同一个图像进行空间域和频域的相互转换时,不要交叉使用这两个算子。
当然,从空间域到频域的转换,也可以使用算子fft_image,这个算子也是快速傅里叶变换,其实际效果相当于:
fft_generic(Image,ImageFFT,‘to_freq’,-1,‘sqrt’,‘dc_center’,‘complex’)
Image:输入图像
ImageFFT:输出图像
to_freq:转到频域
‘-1’:默认
‘sqrt’:默认
‘dc_center’:默认
‘complex’:默认

2.8 convol_fft()

一个重要的经验结论:低频代表图像整体轮廓,高频代表了图像噪声,中频代表图像边缘、纹理等细节。
1.具有一定纹理特征的图像,纹理可以理解为条纹,如布匹、木板、纸张等材质容易出现。
2.需要提取对比度低或者信噪比低的特征。
3.图像尺寸较大或者需要与大尺寸滤波器进行计算,此时转换至频域计算,具有速度优势。因为空间域滤波为卷积过程(加权求和),频域计算直接相乘。
使用频域进行检测,有两个步骤是比较关键的:
1.一个是生成合适的滤波器;
2.一个是空间域和频域之间的转换。

2.9 sub_image()

sub_image(ImageMinuend , ImageSubtrahend : ImageSub : Mult , Add 😃
ImageMinuend :输入的被减图像
ImageSubtrahend:减数图像
ImageSub:结果图像
Mult:乘数因子
Add:灰度补充值

2.10 binary_threshold()

binary_threshold(Image : Region : Method, LightDark : UsedThreshold)
Image :要分割的图像
Region :分割后的区域
Method:分割方法,提供了两种方法:‘max_separability’和’smooth_histo’。这两种方法只能用于具有双峰直方图的图像
LightDark :提取暗背景还是亮背景
UsedThreshold:使用阈值
示例:

binary_threshold(Sub0, region, 'max_separability', 'dark', UsedThreshold)

从图像中分割出

2.11 area_center()

area_center (region, A, Row, Column)
计算每个区域的面积 中心坐标

2.12 select_shape()

select_shape(Regions: SelectedRegions: Features, Operation, Min, Max: )
借助形状特征选择区域。
Regions: 输入区域元组
SelectedRegions:输出满足条件的区域元组
Features:输入参数形状特征(‘anisometry’, ‘area’, ‘area_holes’, 'bulkiness’等)
Operation:输入参数关系符(‘and’, ‘or’)如果features只是用一种特性那么此参数没有意义
Min、Max:输入参数下限上限值
示例:

select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999)

选择区域面积范围

2.13 connection()

connection(Region, ConnectedRegions)
Region表示需要计算的输入图像区域
ConnectedRegions表示输出图像区域
示例:

connection (regions, ConnectedRegions)

在这里插入图片描述
对区域中的子连通集进行操作。

2.14 closing_circle()

closing_circle(Region: RegionClosing : Radius)
Region:输入区域
RegionClosing:输出结果区域
Radius:输入使用的圆形结构的圆半径 0.5 ≤ Radius ≤ 511.5 (lin)
使用圆形结构元素来闭合一个区域。
示例:

closing_circle (RegionUnion, RegionClosing, 5)

使用圆形结构元素来闭合一个区域,只要是在区域内并且小于输入圆形半径的孔都会被闭合

2.15 overpaint_region()

color := [255,255,0]
*RGB红色+绿色
*黄色
*用指定颜色填充指定区域
*Image:待绘制的图像
*Region:待绘制的区域
*color:颜色
*margin:填充类型

  •  'fill'     填充全部区域
    
  •  'margin'   只填充边界
    

示例:

overpaint_region (Image, Region, color, 'margin')

2.16 union1 ()

union1 (Region, RegionUnion)
将所有区域合并成一个区域。
参数1:要计算并集的区域
参数2:输出区域
示例:

union1 (SelectedRegions, RegionUnion)

2.17 threshold()

threshold(Image : Region : MinGray, MaxGray : )
使用全局阈值分割图像。
Image (input_object) :输入图像
Region (output_object) :阈值分割后Region
MinGray (input_control):设置的最小阈值(灰度值)
MaxGray (input_control) :设置的最大阈值(灰度值)
其中要满足MaxGray >= MinGray
示例:

#全局阈值分割出两个区域
threshold (Image, Region, [0, 107], [106, 255])

2.18 crop_part()

crop_part(Image : ImagePart : Row, Column, Width, Height : )
用来截取感兴趣区域。
Image:原图像
ImagePart:截取的图像
Row、Column:图像截取的起始点坐标
Width、Height:截取图像的宽、高
示例:

crop_part(Image,imgCut,100,100,1200,1200)

相关文章:

  • 河南自助建站seo公司/营销推广软文
  • 装饰工程网站模板下载/万网域名管理平台
  • 自己免费做网站(四)/市场推广怎么做
  • 温州电子商务网站建设/打开百度搜索
  • 网站开发 在html标记后出现乱码 查看源文件显示是问好/全网霸屏推广系统
  • 重庆便民服务网站APP/推广普通话海报
  • Aquatox水环境与水生态模型实践技术应用
  • 转行人必看:数字IC前端设计学习路线与方法(内附学习视频)
  • 单片机——LED
  • postgres 源码解析46 可见性映射表VM
  • Android制作简易的音乐播放器和视频播放器
  • 正点原子-Linux嵌入式开发学习-第二期04
  • 六、Buffer缓冲区和Stream流
  • 基于业务预测与聚类分析的网络疏忙评估方法
  • 【虹科案例】用于超高磁场的虹科 digitizerNETBOX——高采样率和完全同步采样
  • 全排列思路
  • 【檀越剑指大厂—SpringMVC】SpringMVC篇
  • 艾美捷硝酸盐/亚硝酸盐荧光法检测试剂盒基本参数说明