导图社区 Halcon
这是一篇关于Halcon的思维导图,Halcon包括图像采集,图像处理,模板匹配和异常处理四个部分。导图详细的阐述了图像处理的内容,感兴趣的小伙伴可以下载收藏。
编辑于2022-11-24 09:51:00 江苏省Halcon
图像采集
Halcon通过imageacquisition interfaces对各种图像采集卡及各种工业相机进行支持。 Halcon通过统一的接口封装上述不同相机的image acquisition interfaces,从而达到算子统一化。 不同的相机只需更改几个参数就可变更使用。
Halcon图像获取
1、打开设备,获得该设备的句柄
open_framegrabber('DahengCAM', 1, 1, 0, 0, 0, 0, 'interlaced', 8, 'gray', -1, 'false','HV-13xx', '1', 1, -1, AcqHandle) //连接相机,并设置相关参数
2、调用采集算子,获取图像
grab_image (Image, AcqHandle) //(同步采集)完后处理图像,然后再采集图像。采集图像的速率受处理速度影响。 grab_image_async (Image, AcqHandle,MaxDelay) //(异步采集),一幅画面采集完后相机马上采集下一幅画面,不受处理速度影响。其中第三个参数为:MaxDelay,表示异步采集时可以允许的最大延时,本次采集命令距上次采集命令的时间不能超出MaxDelay,超出即重新采集。 图像采集其他相关算子: grab_image_start,该算子开始命令相机进行异步采集。只能与grab_image_async(异步采集)一起使用
3、相机参数读写
读取相机参数: info_framegrabber( : : Name, Query : Information, ValueList) 写相机参数: set_framegrabber_param( : : AcqHandle, Param, Value : )
图像处理
图像增强
对比度增强
亮度校正
直方图归一化
直方图均衡化
图像分割
基于灰度值阈值的图像分割
全局阈值分割图像:threshold
采用全局阈值分割图像
格式:threshold(Image : Region : MinGray, MaxGray : )
自动全局阈值分割的方法:
(1)计算灰度直方图
(2)寻找出现频率最多的灰度值(最大值)
(3)在threshold中使用与最大值有一定距离的值作为阈值
例:
gray_histo(Regions, Image,AbsoluteHisto, RelativeHisto) //计算出图像区域内的绝对和相对灰度值直方图。 PeakGray := sort_index(AbsoluteHisto)[255] //求出出现频率最多的灰度值 threshold(Image,Region,0,PeakGray-25)
局部阈值分割图像:dyn_threshold
使用一个局部阈值分割图像
格式:dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : )
例:
mean_image(Image,Mean,21,21) dyn_threshold(Image,Mean, RegionDynThresh,15,'dark')
自动阈值分割图像:bin_threshold
使用一个自动确定的阈值分割图像
格式:bin_threshold(Image : Region : : )
阈值图像局部均值和标准差的分析:var_threshold
格式:var_threshold(Image : Region : MaskWidth, MaskHeight, StdDevScale, AbsThreshold, LightDark : )
基于边缘的图像分割
寻找区域之间的边界
从图像中提取分水岭和盆地:watersheds
格式:watersheds(Image : Basins, Watersheds : : )
使用阈值从图像中提取分水岭和盆地:watersheds_threshold
格式:watersheds_threshold(Image : Basins : Threshold : )
基于区域的图像分割
直接创建区域
可变化模型:基于参考图像和经过训练的在一定误差范围内的标准样本的分割
子主题
区域生长:梯度、均值、彩色、纹理
分类:基于神经网络或 n 维线性平面或曲面的分类器
形态学处理
形态学处理以集合运算为基础。 腐蚀、膨胀、开操作、闭操作是所有形态学图像处理的基础。 开操作(先腐蚀再膨胀)使对象的轮廓变得光滑,断开狭窄的间断和消除细的突出物。 闭操作(先膨胀再腐蚀)消弥狭窄的间断和长细的鸿沟,消除小的孔洞,填补轮廓线的断裂。
形态学基础算子
腐蚀:erosion1
膨胀:dilation1
闭操作:closing
开操作:opening
常用的形态学相关算子
connection
select_shape
opening_circle
closing_circle
opening_rectangle1
closing_rectangle1
complement
difference
intersection
union1
shaps_trans
fill_up
形态学高级算子
boundary
skeleton
图像处理
图像滤波
平滑滤波
边缘保护和增强平滑
各向非同性滤波
高斯平滑
二项式滤波
均值滤波
阶梯滤波器
分离系数中值滤波
中值
加权中值
中度滤波
Sigma 滤波
切尾均值
椒盐噪声去除
递归平滑滤波
边缘滤波
Canny算子
Deriche算子
Lanser算子
Shen算子
Frei算子
Kirsch算子
Roberts算子
Prewitt算子
Robinson算子
Sobel算子
Laplace算子
高斯差分
高斯导数
边缘闭合
点滤波
Foerstner
Harris
Sojka 亚象素精度点提取滤波器
纹理
Laws 滤波器(3X3,5x5,7X7)
离差
熵
其他类型滤波器
自定义滤波器
点滤波器
灰度骨架抽取
主成分分析
拓扑骨架抽取
高斯金字塔变换
类型转换
算术运算
比例缩放
加
减
乘
绝对值
最大值
最小值
翻转
平方根
颜色变换
CIElab
hsv
his
yiq
yuv
CIExyz
hls
his
等
傅立叶变换
高速 FFT
高斯
导数计算
Gabor 滤波器
带通
高通
低通滤波
能量
相位
权值计算
霍夫变换
线检测
圆检测
亚象素轮廓
亚象素边缘及线提取
边缘检测算子
Canny
Deriche
Lanser
Sobel
Facet模型及Steger线提取(精度高于 1/50 像素)
亚象素彩色边缘、线提取
亚象素阈值
亚象素轮廓处理
轮廓处理
仿射和投影变换
线、圆、椭圆分割提取及拟合
平行轮廓合并
不同标准形状生成
形状特征
面积、中心点、方向、圆度、紧密度、周长、椭圆轴、力矩、凸度、离心率、角分析(凸,圆、矩形)
基于形状特征的轮廓选择
边缘位置测量
沿线段、圆弧的亚象素边缘提取;自动选择边缘(起点、终点、所有 点、上升、下降,边缘点对);边界及边界对寻找评价函数
Blob 分析
阈值:全局、局部、自动
区域处理:连通域分析、骨架、连接点,终点;集合算法(交集、并 集,差集、补集);角分析(凸、圆、矩形、椭圆形、凹);空洞填充、 区域生成(矩形、圆形、椭圆形、方格、网格、多边形、任意形状), 访问(游程编码,链码、轮廓、多边形)
灰度值特征:最大值、最小值、均值、方差、共生矩阵、直方图、熵、 模糊特征、灰度矩
形状特征:面积、中点、方向、圆度、紧密度,空洞数、周长、凹度、 椭圆轴、2 阶、3 阶 矩、离心率、Hamming 距离、闭合区域(圆、矩形),距离、空间关 系、欧拉数
数学形态学
二值形态学:明可夫斯基加减、膨胀、腐蚀、开运算、闭运算,击中击不中变换、边界、修剪、加粗、细化、距离变换
灰度形态学:分水岭算法、膨胀、腐蚀、开运算、闭运算、top hat, bottom hat
分类器
多层感知神经网络;
非一致分布 n 维线性平面或曲面的数据集聚类算法
几何变换
旋转、比例缩放、平移、镜像、剪切、仿射、透视、极化变换;从点 对应到角的近似变换、含自动点匹配的图像融合;图像变形校正;拼 图;线扫描图像区域与边界融合
模式匹配
灰度值、基于形状、基于任意大小和形状的多模版匹配;鲁棒性极佳 的识别算法,对于旋转、比例缩放、混乱及部分被遮挡物体和照明变 化都能准确识别。只需调用一次识别寒暑,即可识别不同目标及之间 有相对位置变化的目标。可以产生综合模型,比如从多边形的图像数 据中
条码及二维码识别
1 维条码识别:EAN 13, EAN 8, UPC-A, UPC-E, 2/5 工业, 2/5 插 入式,Codabar, Code 39, Code 93, Code 128, PharmaCode 2 维码识别:ECC 200, QR 码
光学字符识别(OCR)
基于字符的识别,特殊分割算法,旋转校正、训练字体、可选特征
光学字符验证(OCV)
基于灰度值的模版对比算法、对于亮度,位置以及大小变换均能得出 一致性结果。
3 维定标
用多幅图像为针孔和远心摄像机的内部及外部参数定标;图像和点的 变形校正;点和轮廓的图像坐标到实际三维空间坐标系的变换;图像 校正(去除镜头及透视变形)
3 维视觉
双目立体视觉:双摄像机标定;图像校正;亚像素精度的深度及差度 计算 其它方法:基于聚焦变化的深度图像获取;基于双目视觉的测量
模板匹配
异常处理
无法加载+DLL“halcon”:+找不到指定的模块
根本解决方法: 把Halcon运行支持目录添加到系统环境配置中去(windows系统环境支持都需要在PATH目录),因为这个目录里面还有很多采集的库需要依赖,特别很多人写halcon的相机采集的时候,其实整个目录里面的dll都是需要依赖的,也就是Runtime内容,所以上面那种简单解决不能有效解决hAcqGigeVision.dll这种缺少,你要拷贝好多依赖的把整个bin都拷贝到system32下面去?没必要。 Win10打开设置:此计算机->右键属性->系统“高级系统设置”->系统属性->高级->底部“环境变量(N)