Halcon边缘检测和线条检测(4)各种边缘检测算子及10个例子

您所在的位置:网站首页 边缘检测例子 Halcon边缘检测和线条检测(4)各种边缘检测算子及10个例子

Halcon边缘检测和线条检测(4)各种边缘检测算子及10个例子

2023-08-22 13:48| 来源: 网络整理| 查看: 265

一、算子说明

sobel_amp ( Image : EdgeAmplitude : FilterType, Size : ) 根据图像的一次导数计算图像的边缘

close_edges ( Edges, EdgeImage : RegionResult : MinAmplitude : )

close_edges_length ( Edges, Gradient : ClosedEdges : MinAmplitude, MaxGapLength : ) 使用边缘高度图像关闭边缘间隙。输出的区域包含杯关闭的区域。(感觉是对边缘的扩充)

derivate_gauss ( Image : DerivGauss : Sigma, Component : )

watersheds ( Image : Basins, Watersheds : : ) 从图像中提取风水岭。

zero_crossing ( Image : RegionCrossing : : ) 零交点(二次导数)

diff_of_gauss ( Image : DiffOfGauss : Sigma, SigFactor : ) 近似日志算子( 拉普拉斯高斯) 。

laplace_of_gauss ( Image : ImageLaplace : Sigma : ) 拉普拉斯高斯

edges_color_sub_pix ( Image : Edges : Filter, Alpha, Low, High : ) 精确的亚像素边缘提取(彩色图像)

edges_sub_pix ( Image : Edges : Filter, Alpha, Low, High : ) 精确边缘提取的亚像素(灰度图像)

edges_color ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : ) 根据颜色进行边缘提取

edges_image ( Image : ImaAmp, ImaDir : Filter, Alpha, NMS, Low, High : ) 边缘提取

skeleton ( Region : Skeleton : : ) 计算区域的框架 Skeleton == Region

frei_amp ( Image : ImageEdgeAmp : : ) Frei-chen 模板进行边缘检测(振幅)

frei_dir ( Image : ImageEdgeAmp, ImageEdgeDir : : ) Frei-chen 模板进行边缘检测(振幅和方向)

nonmax_suppression_dir ( ImgAmp, ImgDir : ImageResult : Mode : ) 使用方向图像 抑制所有的超过给定最大值的图像灰度值的点

gen_contours_skeleton_xld ( Skeleton : Contours : Length, Mode : ) 将系统框架转换成 XLD 轮廓

laplace ( Image : ImageLaplace : ResultType, MaskSize, FilterMask : ) 使用有限差分计算拉普拉斯变换

info_edges ( : : Filter, Mode, Alpha : Size, Coeffs ) 估计滤波器的宽度

kirsch_dir ( Image : ImageEdgeAmp, ImageEdgeDir : : ) 使用 Kirsch 算子计算出边缘(振幅和方向)

prewitt_amp ( Image : ImageEdgeAmp : : ) 使用 Prewitt 算子计算出边缘(振幅)

kirsch_amp ( Image : ImageEdgeAmp : : ) 使用 Kirsch 算子计算出边缘(振幅)

highpass_image ( Image : Highpass : Width, Height : ) 从高频成分提取的图像。

sobel_amp ( Image : EdgeAmplitude : FilterType, Size : ) 使用 Sobel 算子计算出边缘(振幅)

robinson_amp ( Image : ImageEdgeAmp : : ) 使用 Robinson 算子计算出边缘(振幅)

roberts ( Image : ImageRoberts : FilterType : ) 使用 Robert 算子计算边缘

二、举例说明 ********方法1:找图像边缘******** read_image (Image1, 'blobs') mean_image (Image1, ImageMean, 9, 9) dyn_threshold (Image1, ImageMean, RegionDynThresh, 4, 'not_equal') erosion_circle (RegionDynThresh, RegionErosion, 2) fill_up_shape (RegionErosion, RegionFillUp, 'area', 1, 50) ********方法2:找图像边缘******** *灰度腐蚀 gray_erosion_rect (Image1, ImageMin, 5, 5) *灰度膨胀 gray_dilation_rect (ImageMin, ImageMax, 5, 5) *局部阈值分割 dyn_threshold (ImageMin, ImageMax, RegionDynThresh1, 5, 'not_equal') *使用圆形结构元素腐蚀区域 erosion_circle (RegionDynThresh1, RegionErosion2, 2) ********方法3:找图像边缘******** read_image (Image, 'blobs') threshold (Image, Region, 128, 255) opening_circle (Region, RegionOpening, 3.5) connection (RegionOpening, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 0, 20000) gen_contour_region_xld (SelectedRegions, Contours, 'border_holes') ********方法4:找图像边缘******** read_image (Image, 'blobs') threshold (Image, Region, 100, 255) dilation_circle (Region, RegionDilation, 1) erosion_circle (Region, RegionErosion1, 1) difference (RegionErosion, RegionErosion1, RegionDifference) ********方法5:找图像边缘******** threshold (Image1, Region1, 0, 100) boundary (Region1, RegionBorder3, 'inner') ********方法6:找图像边缘******** edges_color_sub_pix (Image1, Edges, 'canny', 1, 20, 40) gen_region_contour_xld (Edges, Region2, 'margin') union1 (Region2, RegionUnion) ********方法7:找图像边缘******** roberts (GrayImage, ImageRoberts, 'gradient_sum') ********方法8:找图像边缘******** *对噪声可以适当抑制。变换后图像有偏移 prewitt_amp (GrayImage, ImageEdgeAmp) ********方法9:找图像边缘******** *降低边缘模糊程度 sobel_amp (GrayImage, EdgeAmplitude, 'sum_abs', 3) ********方法10:Canny算法找图像边缘******** *图像的边缘,参数7:低阈值,参数8:高阈值。一般高阈值是低阈值的1.5倍-2倍 edges_image (EdgeAmplitude, ImaAmp, ImaDir, 'canny', 1, 'nms', 20, 40)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3