Halcon边缘检测和线条检测(4)各种边缘检测算子及10个例子 |
您所在的位置:网站首页 › 边缘检测例子 › Halcon边缘检测和线条检测(4)各种边缘检测算子及10个例子 |
一、算子说明
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 |