close_edgesclose_edgesCloseEdgesCloseEdgesclose_edges闭合边缘(算子)

名称

close_edgesclose_edgesCloseEdgesCloseEdgesclose_edges — 使用边缘振幅图像闭合边缘间隙。

签名

close_edges(Edges, EdgeImage : RegionResult : MinAmplitude : )

Herror close_edges(const Hobject Edges, const Hobject EdgeImage, Hobject* RegionResult, const Hlong MinAmplitude)

Herror T_close_edges(const Hobject Edges, const Hobject EdgeImage, Hobject* RegionResult, const Htuple MinAmplitude)

void CloseEdges(const HObject& Edges, const HObject& EdgeImage, HObject* RegionResult, const HTuple& MinAmplitude)

HRegion HRegion::CloseEdges(const HImage& EdgeImage, Hlong MinAmplitude) const

static void HOperatorSet.CloseEdges(HObject edges, HObject edgeImage, out HObject regionResult, HTuple minAmplitude)

HRegion HRegion.CloseEdges(HImage edgeImage, int minAmplitude)

def close_edges(edges: HObject, edge_image: HObject, min_amplitude: int) -> HObject

描述

close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdgesclose_edges 用于闭合边缘检测器输出中的间隙,从而试图生成完整的对象轮廓。该操作通过检查每个边缘点的邻域来确定振幅最大(即梯度最大)的点,若该点的振幅大于传递的最小振幅参数 MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude,则将其添加到边缘中。该算子期望输入由典型边缘算子(如 edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_imagesobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp)返回的边缘(EdgesEdgesEdgesEdgesedgesedges)和幅度图像(EdgeImageEdgeImageEdgeImageEdgeImageedgeImageedge_image)。close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdgesclose_edges 不会考虑边缘算子可能返回的边缘方向。因此,在梯度几乎恒定的区域,边缘可能会变得相当“扭曲(wiggly)”。

注意

请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章

执行信息

参数

EdgesEdgesEdgesEdgesedgesedges (输入对象)  region(-array) objectHRegionHObjectHRegionHobject

包含单像素厚边缘的区域。

EdgeImageEdgeImageEdgeImageEdgeImageedgeImageedge_image (输入对象)  singlechannelimage objectHImageHObjectHImageHobject (byte / uint2 / int4)

边缘幅度(梯度)图像。

RegionResultRegionResultRegionResultRegionResultregionResultregion_result (输出对象)  region(-array) objectHRegionHObjectHRegionHobject *

包含闭合边缘的区域。

MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

最小边缘振幅。

默认值: 16

建议值: 5, 8, 10, 12, 16, 20, 25, 30, 40, 50

值范围: 1 ≤ MinAmplitude MinAmplitude MinAmplitude MinAmplitude minAmplitude min_amplitude

最小增量: 1

建议增量: 1

示例(C)

sobel_amp(Image,&EdgeAmp,"sum_abs",5);
threshold(EdgeAmp,&EdgeRegion,40.0,255.0);
skeleton(EdgeRegion,&ThinEdge);
close_edges(ThinEdge,EdgeAmp,&CloseEdges,15);
skeleton(CloseEdges,&ThinCloseEdges);

结果

close_edgesclose_edgesCloseEdgesCloseEdgesCloseEdgesclose_edges 在所有参数正确时返回 2 (H_MSG_TRUE)。当输入为空时,可设置行为通过算子 set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)。如有必要,则抛出异常。

可能的前趋

edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image, sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_amp, thresholdthresholdThresholdThresholdThresholdthreshold, skeletonskeletonSkeletonSkeletonSkeletonskeleton

可能的后继

skeletonskeletonSkeletonSkeletonSkeletonskeleton

替代

close_edges_lengthclose_edges_lengthCloseEdgesLengthCloseEdgesLengthCloseEdgesLengthclose_edges_length, dilation1dilation1Dilation1Dilation1Dilation1dilation1, closingclosingClosingClosingClosingclosing

另见

gray_skeletongray_skeletonGraySkeletonGraySkeletonGraySkeletongray_skeleton

模块

基础