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

网站建设运营方案seo实战培训视频

网站建设运营方案,seo实战培训视频,在线做热图的网站,天津网站建设推广服务【机械视觉】Halcon—【十二、边缘提取】 目录 【机械视觉】Halcon—【十二、边缘提取】 Halcon边缘提取算子详解与应用场景 1. 一阶导数边缘检测算子 (1) Sobel算子 (2) Prewitt算子 (3) Roberts算子 2. 二阶导数边缘检测算子 (1) Laplacian算子 3. Canny边缘检测&a…

【机械视觉】Halcon—【十二、边缘提取】

目录

【机械视觉】Halcon—【十二、边缘提取】

Halcon边缘提取算子详解与应用场景

1. 一阶导数边缘检测算子

(1) Sobel算子

(2) Prewitt算子

(3) Roberts算子

2. 二阶导数边缘检测算子

(1) Laplacian算子

3. Canny边缘检测(最优边缘检测)

4. 亚像素级边缘检测

(1) edges_sub_pix

(2) lines_gauss(高斯线检测)

5. 其他边缘检测算子

(1) Frei-Chen算子

(2) Kirsch算子

总结:如何选择合适的边缘检测算子?

例子

区域增长原理


Halcon边缘提取算子详解与应用场景

Halcon提供了多种边缘提取方法,包括一阶导数算子(如Sobel、Prewitt、Roberts)二阶导数算子(如Laplacian)Canny边缘检测亚像素级边缘检测等。不同算子适用于不同场景,如工业检测(高精度测量)医学图像分析(弱边缘提取)自动驾驶(实时边缘检测)等。


1. 一阶导数边缘检测算子

基于梯度计算,适用于快速边缘检测,但对噪声较敏感。

(1) Sobel算子

函数:

sobel_amp(Image, EdgeAmplitude, FilterType, Size)  % 计算梯度幅值
sobel_dir(Image, EdgeAmplitude, EdgeDirection, FilterType, Size)  % 计算梯度幅值和方向

参数说明:

  • FilterType:滤波方式('sum_abs'绝对值求和、'sum_sqrt'平方和开方、'thin_max'最大梯度)

  • Size:卷积核大小(3、5、7、9等,越大抗噪性越强但边缘越模糊)

特点:

  • 计算水平和垂直方向的梯度,适合检测垂直和水平边缘

  • 对噪声有一定的平滑作用,但不如高斯类算子(如Canny)。

应用场景:

  • 工业检测(如PCB板边缘、零件轮廓)

  • 快速边缘提取(实时性要求较高的场景)


(2) Prewitt算子

函数:

prewitt_amp(Image, EdgeAmplitude)  % 计算梯度幅值
prewitt_dir(Image, EdgeAmplitude, EdgeDirection)  % 计算梯度幅值和方向

特点:

  • 类似Sobel,但卷积核不同(Sobel更注重中心像素,Prewitt更平均)。

  • 计算速度较快,但边缘定位精度略低于Sobel。

应用场景:

  • 医学图像边缘检测(如X光片中的骨骼轮廓)

  • 简单场景下的快速边缘提取(如文档扫描)


(3) Roberts算子

函数:

roberts(Image, EdgeAmplitude, FilterType)

参数说明:

  • FilterType'roberts_max'(取最大值)、'roberts_sum'(求和)

特点:

  • 使用2×2卷积核,计算简单,但对噪声敏感。

  • 适合高对比度图像的边缘检测。

应用场景:

  • 高对比度图像(如黑白条形码、二维码)

  • 计算资源受限的嵌入式设备(如小型工业相机)


2. 二阶导数边缘检测算子

基于二阶微分(Laplacian),检测灰度突变点(过零点),对噪声敏感,通常需要先做高斯平滑。

(1) Laplacian算子

函数:

laplace(Image, ImageLaplace, ResultType, MaskSize, FilterMask)

参数说明:

  • ResultType:输出类型('byte''int2'等)

  • MaskSize:卷积核大小(3、5、7等)

  • FilterMask'positive'(正Laplacian)、'negative'(负Laplacian)

特点:

  • 对噪声敏感,通常需要先做高斯滤波gauss_filter)。

  • 能检测边缘的过零点,但边缘较粗。

应用场景:

  • 边缘增强(如指纹识别)

  • 结合高斯滤波用于LOG(Laplacian of Gaussian)边缘检测


3. Canny边缘检测(最优边缘检测)

Canny是最经典的边缘检测方法,包括高斯平滑→梯度计算→非极大值抑制→双阈值检测

函数:

edges_image(Image, ImaAmp, ImaDir, Filter, Alpha, NMS, Low, High)

参数说明:

  • Filter:滤波器类型('canny''deriche1''deriche2''lanser1''lanser2'

  • Alpha:平滑系数(越小越平滑,推荐0.5~2.0)

  • NMS:非极大值抑制('nms'启用,'none'禁用)

  • LowHigh:滞后阈值(低阈值用于弱边缘,高阈值用于强边缘)

特点:

  • 抗噪能力强(高斯平滑)。

  • 边缘连续性好(双阈值连接)。

  • 计算量较大(相比Sobel)。

应用场景:

  • 高精度工业检测(如半导体晶圆缺陷检测)

  • 自动驾驶(车道线检测)

  • 医学图像(血管分割)


4. 亚像素级边缘检测

适用于高精度测量,返回XLD(亚像素轮廓),可用于Halcon的几何测量(如measure_pos)。

(1) edges_sub_pix

函数:

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

参数说明:

  • Filter'canny''lanser2''deriche2'

  • Alpha:平滑系数(推荐1.0~2.0)

  • LowHigh:双阈值

特点:

  • 亚像素精度(精度可达0.1像素)。

  • 输出XLD轮廓,可用于拟合直线、圆等几何形状

应用场景:

  • 精密尺寸测量(如齿轮齿距、PCB线宽)

  • 3D视觉(结构光边缘提取)


(2) lines_gauss(高斯线检测)

函数:

lines_gauss(Image, Lines, Sigma, Low, High, LightDark, ExtractWidth, LineModel, CompleteJunctions)

参数说明:

  • Sigma:高斯平滑系数(越大越平滑)

  • LightDark'light'(亮线)、'dark'(暗线)

  • ExtractWidth:是否提取线宽('true'/'false'

特点:

  • 适用于细线检测(如电路板走线、纤维检测)。

  • 可返回线的宽度信息

应用场景:

  • FPC柔性电路板检测

  • 纺织行业(纤维直径测量)


5. 其他边缘检测算子

(1) Frei-Chen算子

函数:

frei_amp(Image, EdgeAmplitude)  % 幅值
frei_dir(Image, EdgeAmplitude, EdgeDirection)  % 幅值+方向

特点:

  • 斜边缘响应更好,计算速度较快。

(2) Kirsch算子

函数:

kirsch_amp(Image, EdgeAmplitude)  % 幅值
kirsch_dir(Image, EdgeAmplitude, EdgeDirection)  % 幅值+方向

特点:

  • 使用8方向模板,适合复杂边缘检测


总结:如何选择合适的边缘检测算子?

算子特点适用场景
Sobel计算快,适合水平和垂直边缘PCB检测、简单轮廓提取
Prewitt类似Sobel,但更平均医学图像、文档扫描
Roberts2×2卷积核,计算快但噪声敏感高对比度图像(条形码)
Laplacian二阶微分,需高斯平滑边缘增强(指纹识别)
Canny最优边缘检测,抗噪强高精度工业检测、自动驾驶
edges_sub_pix亚像素精度,XLD输出精密尺寸测量(齿轮、PCB)
lines_gauss高斯线检测,可测线宽电路板走线、纤维检测

推荐选择:

  • 实时检测 → Sobel / Prewitt

  • 高精度测量 → Canny / edges_sub_pix

  • 细线检测 → lines_gauss

  • 抗噪需求高 → Canny / Deriche滤波器


例子

read_image (Image, 'fabrik')
get_image_size (Image, Width, Height)
dev_close_window ()
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (Image)*边缘提取
*参数3 提取边缘的算法
*'sum_abs':水平梯度和竖直梯度绝对值和 + 5 一般检测
* sum_sqrt:水平梯度和竖直梯度平方根和  + 3  精细检测
* sum_abs':水平梯度和竖直梯度绝对值和 + 7  抗噪检测
*参数4 滤波核的大小
sobel_amp (Image, EdgeAmplitude, 'sum_abs', 5)*laplace 计算图像的时候采用的拉普拉斯算子,可以增强边缘细节,主要边缘检测和图像锐化 
*'absolute' 输出图像都是正直 'signed' 保留正负值
*MaskSize:滤波核 尺寸 写成奇数
*'n_4' 4邻域的矩阵 +size5/7 抗噪检测
*'n_8' 8邻域矩阵 + size3 精细检测
laplace (Image, ImageLaplace, 'signed', 5, 'n_8')*该算子特点对噪声比较敏感。建议先平滑操作
prewitt_amp (Image, ImageEdgeAmp)threshold (ImageEdgeAmp, Region, 20, 255)
dev_set_color ('green')
*骨骼化操作:可以将一个区域缩减为单像素宽的骨架进行表示,同时保留原始区域拓扑结构和特征结构
skeleton (Region, Skeleton)
dev_display (Skeleton)


区域增长原理

以坐标为种子坐标,向四周进行搜索,寻找合适的区域,这个区域满足灰度值与当前的均值图

read_image (Image, 'fabrik')
*对图像进行中值处理,以2为半径的圆所有像素中间值
median_image (Image, ImageMedian, 'circle', 2, 'mirrored')
regiongrowing (ImageMedian, Regions, 1, 1, 2, 5000)
*提取区域的中心点的区域
shape_trans (Regions, RegionTrans, 'inner_center')
connection (RegionTrans, ConnectedRegions)
*获取提取区域的中心点坐标
area_center (ConnectedRegions, Area, Row, Column)*regiongrowing_mean:以坐标为种子坐标,向四周进行搜索,寻找合适的区域,这个区域满足灰度值与当前的均值图
*对应的区域的灰度值差小于5的,并且区域像素数大于100*参数1 按照中值滤波进行平滑
*参数2 Regions1 输出的区域
*参数3 参数4Row, Column种子生在点坐标
*参数5  灰度值差异值
*参数6  过滤的面积
regiongrowing_mean (ImageMedian, Regions1, Row, Column, 25, 100)*种子点选择在图像的左上角,逐行扫描像素点 ,比较的是相邻的1*1像素,如果像素灰度值差异小于2,归为一个区域
*regiongrowing (ImageMedian, Regions, 1, 1, 2, 5000)

http://www.dtcms.com/wzjs/177636.html

相关文章:

  • 网上推广购物平台怎么推广好seo网站优化排名
  • 门户网站域名是什么意思seo推广优化工具
  • 大连网站建设工作室综合型b2b电子商务平台网站
  • 可靠的合肥网站建设律师推广网站排名
  • 网站开发平台工具成都网站优化seo
  • 旅游网站排名排行榜seo网络推广公司排名
  • 网站建设问卷调查表seo外包公司多少钱
  • 网站开发步骤说明书sem代运营公司
  • 锦州 做网站seo收费
  • app网站制作下载海南百度推广公司有哪些
  • 做网站每年运营要花掉多少钱如何推广自己的业务
  • 杭州化工网站建设seo优化多少钱
  • 温岭 网站建设seo外包服务方案
  • 建设国外网站免费建站的网站
  • 专业网站建设开发线上销售平台都有哪些
  • 网站建设网络推广软文投稿平台有哪些
  • 做户外旅游网站微商怎么引流被加精准粉
  • 开源企业建站系统哪个好河北网站seo外包
  • 苍南做网站哪里找深圳网络营销推广服务
  • 一级a做爰片图片免费观看网站站长工具seo词语排名
  • 做网站的技术支持百度24小时人工客服电话
  • 有哪些企业会找人做网站建设谷歌seo
  • 营销型网站开发推荐外链工具软件
  • 如何完整保存网站并做修改疫情最新情况
  • 南京市网站开发下载百度app下载
  • 怎样进入公众号seo站长工具推广平台
  • com域名和cn域名优化品牌seo关键词
  • 买到一个域名以后如何做网站b站网站推广
  • 网站建设四个阶段的流程关键词优化营销
  • 软件开发专业词汇seo代码优化包括哪些