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 closes gaps in the output of an edge detector, and thus tries to produce complete object contours. This is done by examining the neighbors of each edge point to determine the point with maximum amplitude (i.e., maximum gradient), and adding the point to the edge if its amplitude is larger than the minimum amplitude passed in MinAmplitudeMinAmplitudeMinAmplitudeMinAmplitudeminAmplitudemin_amplitude. This operator expects as input the edges (EdgesEdgesEdgesEdgesedgesedges) and amplitude image (EdgeImageEdgeImageEdgeImageEdgeImageedgeImageedge_image) returned by typical edge operators, such as edges_imageedges_imageEdgesImageEdgesImageEdgesImageedges_image or sobel_ampsobel_ampSobelAmpSobelAmpSobelAmpsobel_ampclose_edgesclose_edgesCloseEdgesCloseEdgesCloseEdgesclose_edges does not take into account the edge directions that may be returned by an edge operator. Thus, in areas where the gradient is almost constant the edges may become rather “wiggly.”

注意

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

执行信息

参数

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

Region containing one pixel thick edges.

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

Edge amplitude (gradient) image.

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

Region containing closed edges.

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

模块

基础