[Halcon&拟合] 边缘拟合算法拓展

简介: [Halcon&拟合] 边缘拟合算法拓展

一. 首先,平滑灰度值轮廓,确定一阶导数和二阶导数。

measure_projection — 提取一个垂直于矩形或环形圆弧的灰度值轮廓。
 create_funct_1d_array — 根据y值序列创建一个函数。
 smooth_funct_1d_gauss — 用高斯函数平滑等距一维函数。
 derivate_funct_1d — 计算一个函数的导数(一阶/二阶)。
derivate_funct_1d (SmoothedFunction, 'first', FirstDerivative)
derivate_funct_1d (SmoothedFunction, 'second', SecondDerivative)

二. 确定一阶导数过零点的位置,即,(平滑的)灰度值轮廓有最小值和最大值的位置。

zero_crossings_funct_1d — 计算函数的过零。
zero_crossings_funct_1d (FirstDerivative, ZeroCrossings)

三. 选择最小值的位置。(即二阶导数为正的位置)其中平滑的灰度值轮廓具有高曲率,即,其中二阶导数的绝对值较大。这个标准确保只选择突出的线。(找到灰度值变化较大的位置,即线条的位置,即可将线条绘制出来)

MinimumMagnitudeOfSecondDerivative := 8
PositionOfSalientLine := []
for i := 0 to |ZeroCrossings| - 1 by 1
    get_y_value_funct_1d (SecondDerivative, ZeroCrossings[i], 'constant', Y)
    if (Y > MinimumMagnitudeOfSecondDerivative)
        PositionOfSalientLine := [PositionOfSalientLine,ZeroCrossings[i]]
    endif
endfor

四. 效果:

参考:halcon例程中的measure_caliper(测量卡尺的节距线之间的距离)

目录
相关文章
|
算法
【MATLAB】数据拟合第12期-基于高斯核回归的拟合算法
【MATLAB】数据拟合第12期-基于高斯核回归的拟合算法
608 0
|
机器学习/深度学习 算法 数据挖掘
【MATLAB】数据拟合第10期-二阶多项式的局部加权回归拟合算法
【MATLAB】数据拟合第10期-二阶多项式的局部加权回归拟合算法
529 0
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
基于最小二乘正弦拟合算法的信号校正matlab仿真,校正幅度,频率以及时钟误差,输出SNDR,SFDR,ENOB指标
|
机器学习/深度学习 文字识别 算法
[Halcon&图像] 缺陷检测的一些思路、常规检测算法
[Halcon&图像] 缺陷检测的一些思路、常规检测算法
7507 2
|
机器学习/深度学习 分布式计算 并行计算
【MATLAB】史上最全的13种数据拟合算法全家桶
【MATLAB】史上最全的13种数据拟合算法全家桶
2556 1
|
机器学习/深度学习 数据采集 算法
|
算法
算法系列--动态规划--背包问题(4)--完全背包拓展题目(上)
算法系列--动态规划--背包问题(4)--完全背包拓展题目(上)
149 0
|
算法 数据挖掘
[Halcon&图像] 阈值分割算法拓展
[Halcon&图像] 阈值分割算法拓展
342 1
|
机器学习/深度学习 分布式计算 并行计算
【MATLAB】数据拟合第11期-基于粒子群迭代的拟合算法
【MATLAB】数据拟合第11期-基于粒子群迭代的拟合算法
377 0
|
4月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
431 0