fast_threshold (Image, Region, 0, 120,

7)

boundary

(Region, RegionBorder, 'inner')

dilation_circle (RegionClipped, RegionDilation,

2.5)

reduce_domain (Image, RegionDilation,

ImageReduced)

一副图片的前期处理:

1、Blob应用(逼近感兴趣区域)

2、Boundary

3、膨胀

4、形成Image

提取图像精确边缘

(精确边缘就是亚像素边缘)

(这个函数就是将含有边缘的图像变成亚像素轮廓XLD)

Image:

输入图像

Edges: 输出边缘轮廓

Filter:

边缘提取算法的名称(canny,lanser1

)

Alpha:高斯平滑系数

Low:

低阈值

High:

高阈值

edges_sub_pix (ImageReduced, Edges, 'canny', 2, 20,

60)

(20,60,这两个越小,边缘越多,越细腻,越大,边缘越少)

介绍一下Canny算子:使用累计直方图计算两个阀值。凡是大于高阀值的一定是边缘;

凡是小于低阀值的一定不是边缘;如果检测结果大于低阀值但又小于高阀值,那就要看这个像素的邻接像素中有没有超过高阀值的边缘像素:如果有的话那么它就是边缘了,否则他就不是边缘;

将一个XLD轮廓分割为直线段、圆(圆弧)、椭圆弧。

Contours:

需要进行分割的轮廓。

ContoursSplit:

分割后的轮廓tuple。

Mode:

分割轮廓的方式,可以选择'lines'(使用直线段分割),

'lines_circles'(使用直线段和圆(弧)分割),

'lines_ellipses'(使用直线段和椭圆弧分割)。

SmoothCont:轮廓平滑的参数,可以抑制在折线逼近过程中过短的线段,能更加鲁棒的逼近圆和椭圆。

MaxLineDist1:

第一次用Ramer算法(即用直线段递进逼近轮廓)时的MaxLineDist,在逼近完成之后,再

用圆弧或椭圆弧对相邻分割线段进行拟合,如果拟合圆弧到轮廓的距离小于逼近线段到轮廓的距离,就用圆  弧替代逼近线段,这个过程一致迭代直到所有的线段拟合完毕。

MaxLineDist2:

第二次逼近轮廓时的MaxLineDist,只有当MaxLineDist2

这种两步逼近算法效率较高,因为在第一次逼近过程中,递进逼近的直线段较少,因此较大直径的圆弧能够被高效的分割出来。在第二次逼近过程中,能够被小直径圆弧逼近的轮廓被找到,同时大直径圆弧的末端被重新定义。

segment_contours_xld (Edges, ContoursSplit,

'lines_circles', 5, 4, 3)

Remark:

分割得到的轮廓是直线段、圆(圆弧)或者椭圆弧可以通过分割后轮廓的全局属性'cont_approx’参数的值来确定(参考get_contour_global_attrib_xld)。

如果'cont_approx'=-1,这一部分轮廓最适合被拟合为直线段。

如果'cont_approx'=0,这一部分轮廓最适合被拟合为椭圆弧。

如果'cont_approx'=1,这一部分轮廓最适合被拟合为圆弧。

Count_obj

(ContoursSplit,Number)

计算ContoursSplit连通域的个数

Select_obj

(ContoursSplit,i)

选择ContoursSplit连通域中第i个连通域

get_contour_global_attrib_xld:

::

用于得到一段XLD轮廓的全局特征

参数列表:

Contour(in):单个轮廓

Name

: 特征名称,如

regr_norm_row\regr_norm_col\regr_mean_dist\regr_dev_dist\cont_approx

Attrib(out):特征值

可能前置项:

lines_gauss, lines_facet, edges_sub_pix

get_contour_global_attrib_xld (ObjectSelected,

'cont_approx', Attrib)

如果Attrib

=-1,这一部分轮廓最适合被拟合为直线段。

如果Attrib

=0,这一部分轮廓最适合被拟合为椭圆弧。

如果Attrib

=1,这一部分轮廓最适合被拟合为圆弧。

If (Attrib > 0)

对亚像素拟合圆的函数

Contours(in):

输入轮廓

Algorithm(in):

拟合圆的算法

MaxNumPoints(in):

用于计算的最大轮廓点个数

MaxClosureDist(in):

一个轮廓的末尾点最大间距被认为是闭合

ClippingEndPoints(in):在逼近过程中被忽略的开始及末尾点个数

Iterations(in):

迭代的最大次数用于鲁棒加权拟合

ClippingFactor(in):

消除异常值的裁剪因子

Row(out):

圆心行坐标

Col(out):

圆心列坐标

Radius(out):

圆半径

StartPhi(out):

开始点的角度(rad)

EndPhi(out):

末尾点的角度(rad)

PointOrder(out):

边界点的顺序

fit_circle_contour_xld (ObjectSelected, 'ahuber', -1, 2, 0,

3, 2, Row, Column, Radius, StartPhi, EndPhi,

PointOrder)

函数作用:

对一些线段的XLD做近似计算直线计算

参数Algorithm的可选项解释如下:

algebraic:这种方法减少了轮廓点与结果圆之间的代数距离

ahuber:类似于algebraic,轮廓点被加权以减小异常值的影响基于方法Huber

atukey:类似于algebraic,轮廓点被加权以减小异常值的影响基于方法Tukey

geometric:该法减少了轮廓点与结果圆之间的几何距离,该法被统计是最优的,但占用很多计算时间。如果轮廓点被噪声干扰严重,可以考虑使用该方法。

geohuber:类似于geometric,轮廓点被加权以减小异常值的影响基于方法Huber

geotukey:类似于geometric,轮廓点被加权以减小异常值的影响基于方法Tukey

ClippingFactor控制被弱化的异常值个数,值越小,越多异常值被检测到。

最小拟合一条线的必要轮廓点个数是2,因此,一条轮廓线点个数至少是2+2*ClippingEndPoints

可替代项:

fit_ellipse_contour_xld

fit_line_contour_xld

fit_rectangle2_contour_xld

可能后置项:

gen_circle_contour_xld

disp_circle,

get_points_

提取图像精确边缘 (精确边缘就是亚像素边缘) (zero—cross)

将一个XLD轮廓分割为直线段、圆(圆弧)、椭圆弧。

get_contour_global_attrib_xld(:

::

用于得到一段XLD轮廓的全局特征

对亚像素拟合圆的函数

第一步:提取轮廓

第二部:分割轮廓

第三部:选取轮廓,得到特征

第四部:根据特征,选择函数进行拟合

1、亚像素精度阈值分割

threshold_sub_pix(Image : Border : Threshold : )

2、亚像素轮廓查找

edges_sub_pix(Image : Edges : Filter, Alpha, Low, High :

)

zero_crossing_sub_pix(Image : ZeroCrossings : :

)

halcon像素统计_Halcon(八)亚像素轮廓XLD相关推荐

  1. halcon像素统计_Halcon学习(27-1)halcon测量技术:亚像素,亚像素精度

    友发来两个小项目,要求亚像素精度.突然想问几个问题:1.何为亚像素?2.何为亚像素精度?3.使用亚像素测量,系统应注意什么? 1.何谓亚像素? 面阵摄像机的成像面以像素为最小单位.例如某CMOS摄像芯 ...

  2. 使用OpenCV实现Halcon算法(1)亚像素提取边缘,Sub-Pixel Edge Detector

    声明:本篇仅仅是分享网上的开源项目,算法非本人原创.转载文章: <A Sub-Pixel Edge Detector: an Implementation of the Canny/Devern ...

  3. opencv亚像素边缘精度_opencv 快速亚像素边缘_亚像素边缘定位在光纤中应用

    摘要:随着图象识别技术更广泛的应用到生产领域,其和自动控制相结合可以大大提高工业生产效率,减少人工操作带来的种种弊端.由于使用图像采集,计算机分析.处理.控制,光纤熔接机物镜检测精确度大大提高,从而使 ...

  4. halcon像素统计_Halcon一日一练:图像分辨率与像素

    1.图像像素: 像素是指由图像的小方格即所谓的像素(pixel)组成的,这些小方块都有一个明确的位置和被分配的色彩数值,而这些一小方格的颜色和位置就决定该图像所呈现出来的样子.像素是构成图像的基本单元 ...

  5. halcon 亚像素定义以及测量拟合

    流程: 实现流程: 1>采集图像 2>预处理(RoI) :缩小干扰的区域 3>亚像素的边缘提取(xld) edges_sub_pix 边缘提取算子 threshold_sub_pix ...

  6. 亚像素边缘提取的例子

    求帮忙下载: 1.http://download.csdn.net/detail/pkma75/925394 pkma75 资源积分:1分 备注:pdf格式,用曲线拟合的方法计算亚像素,编程易实现,具 ...

  7. MATLAB亚像素定位,亚像素精准边缘定位

    1.http://download.csdn.net/detail/pkma75/925394 pkma75 资源积分:1分 备注:pdf格式,用曲线拟合的方法计算亚像素,编程易实现,具有较强的实用价 ...

  8. 【遥感图像处理】什么是亚像素,超像素?

    文章目录 1. 亚像素 1.1 亚像素 1.2 亚像素的精度 2. 超像素 2.2 超像素判别条件 2.3 超像素生成算法 1. 亚像素 1.1 亚像素 亚像素,英文subpixel 在相机成像的过程 ...

  9. 深入理解——亚像素 / sub-pixel、亚像素卷积

    目录 1.1 亚像素理解 1.2 何谓亚像素? 1.3 何谓亚像素精度? 摘要: 2 图像处理中的sub-pixel是什么意思? 3 PixelShuffle(像素重组) 1.1 亚像素理解 在相机成 ...

最新文章

  1. usaco ★Subset Sums 集合
  2. 在Ubuntu 14.04 64bit上安装下载管理器FlareGet 4.2.92
  3. angular之两种路由
  4. linux环境部署python3+django
  5. python基础入门(1)
  6. Qt文档阅读笔记-Threaded Fortune Server Example解析
  7. 我应关注的AEC算法细分
  8. 软件包管理器前端工具yum的使用
  9. allegro异形孔导出gerber
  10. 正大国际琪貨召主涨沪:期货交易止损方法主要有那些
  11. JSON、AJAX、Maven
  12. Windows系统盘瘦身指南
  13. Laravel symlink() has been disabled for security reasons
  14. jsp:forward标签介绍
  15. C#——Windows银行储蓄管理系统
  16. 队列的定义、循环队列的顺序存储结构及链式存储结构
  17. flash的Socket连接,服务端用没有平台限制
  18. 什么软件可以将win窗口进行置顶_【玩转YOGA】第四期:像平板一样使用平板——触屏手势软件GestureSign...
  19. docker镜像上传
  20. 【数据挖掘】关联规则挖掘

热门文章

  1. 12月18日第壹简报,星期日,农历十一月廿五
  2. 无线路由器首次配置、修改WiFi名称和密码—— Cisco实验/家里实验
  3. 第二章 大教堂与市集
  4. Java分页导出Excel文件
  5. 支持向量机(SVM)之核函数
  6. Unparseable date: Fri Nov 08 17:37:33 CST 2019
  7. 从二进制到逻辑门——哲学中诞生的计算理论
  8. 阿里云、腾讯云实人认证(身份证、人脸图像比对)
  9. 让蔡徐坤来教你实现游戏中的帧动画(中)
  10. nginx限流以及配置管理