interjacentinterjacentInterjacentInterjacentinterjacent (算子)

名称

interjacentinterjacentInterjacentInterjacentinterjacent — 使用给定区域划分图像平面。

警告

interjacentinterjacentInterjacentInterjacentInterjacentinterjacent 已过时,仅出于向后兼容性考虑而保留。

签名

interjacent(Region : RegionInterjacent : Mode : )

Herror interjacent(const Hobject Region, Hobject* RegionInterjacent, const char* Mode)

Herror T_interjacent(const Hobject Region, Hobject* RegionInterjacent, const Htuple Mode)

void Interjacent(const HObject& Region, HObject* RegionInterjacent, const HTuple& Mode)

HRegion HRegion::Interjacent(const HString& Mode) const

HRegion HRegion::Interjacent(const char* Mode) const

HRegion HRegion::Interjacent(const wchar_t* Mode) const   ( Windows only)

static void HOperatorSet.Interjacent(HObject region, out HObject regionInterjacent, HTuple mode)

HRegion HRegion.Interjacent(string mode)

def interjacent(region: HObject, mode: str) -> HObject

描述

interjacentinterjacentInterjacentInterjacentInterjacentinterjacent partitions the image plane using the regions given in RegionRegionRegionRegionregionregion. The result is a region containing the extracted separating lines. The following modes of operation can be used:

'medial_axis'

This mode is used for regions that do not touch or overlap. The operator will find separating lines between the regions which partition the background evenly between the input regions. This corresponds to the following calls:

Example:

complement('full',Region,Tmp)complement("full",Region,Tmp)Complement("full",Region,Tmp)Complement("full",Region,Tmp)Complement("full",Region,Tmp)complement("full",Region,Tmp)

skeleton(Tmp,Result)skeleton(Tmp,Result)Skeleton(Tmp,Result)Skeleton(Tmp,Result)Skeleton(Tmp,Result)skeleton(Tmp,Result)

'border'

If the input regions do not touch or overlap this mode is equivalent to boundary(Region,Result)boundary(Region,Result)Boundary(Region,Result)Boundary(Region,Result)Boundary(Region,Result)boundary(Region,Result), i.e., it replaces each region by its boundary. If regions are touching they are aggregated into one region. The corresponding output region then contains the boundary of the aggregated region, as well as the one pixel wide separating line between the original regions. This corresponds to the following calls:

Example:

boundary(Region,Tmp1,'inner')boundary(Region,Tmp1,"inner")Boundary(Region,Tmp1,"inner")Boundary(Region,Tmp1,"inner")Boundary(Region,Tmp1,"inner")boundary(Region,Tmp1,"inner")

union1(Tmp1,Tmp2)union1(Tmp1,Tmp2)Union1(Tmp1,Tmp2)Union1(Tmp1,Tmp2)Union1(Tmp1,Tmp2)union1(Tmp1,Tmp2)

skeleton(Tmp2,Result)skeleton(Tmp2,Result)Skeleton(Tmp2,Result)Skeleton(Tmp2,Result)Skeleton(Tmp2,Result)skeleton(Tmp2,Result)

'mixed'

In this mode the operator behaves like the mode 'medial_axis'"medial_axis""medial_axis""medial_axis""medial_axis""medial_axis" for non-overlapping regions. If regions touch or overlap, again separating lines between the input regions are generated on output, but this time including the “touching line” between regions, i.e., touching regions are separated by a line in the output region. This corresponds to the following calls:

Example:

erosion1(Region,Mask,Tmp1,1)erosion1(Region,Mask,Tmp1,1)Erosion1(Region,Mask,Tmp1,1)Erosion1(Region,Mask,Tmp1,1)Erosion1(Region,Mask,Tmp1,1)erosion1(Region,Mask,Tmp1,1)

union1(Tmp1,Tmp2)union1(Tmp1,Tmp2)Union1(Tmp1,Tmp2)Union1(Tmp1,Tmp2)Union1(Tmp1,Tmp2)union1(Tmp1,Tmp2)

complement(full,Tmp2,Tmp3)complement(full,Tmp2,Tmp3)Complement(full,Tmp2,Tmp3)Complement(full,Tmp2,Tmp3)Complement(full,Tmp2,Tmp3)complement(full,Tmp2,Tmp3)

skeleton(Tmp3,Result)skeleton(Tmp3,Result)Skeleton(Tmp3,Result)Skeleton(Tmp3,Result)Skeleton(Tmp3,Result)skeleton(Tmp3,Result)

where Mask denotes the following “cross mask”:

执行信息

参数

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

Regions for which the separating lines are to be determined.

RegionInterjacentRegionInterjacentRegionInterjacentRegionInterjacentregionInterjacentregion_interjacent (输出对象)  region objectHRegionHObjectHRegionHobject *

Output region containing the separating lines.

ModeModeModeModemodemode (输入控制)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Mode of operation.

默认值: 'mixed' "mixed" "mixed" "mixed" "mixed" "mixed"

值列表: 'border'"border""border""border""border""border", 'medial_axis'"medial_axis""medial_axis""medial_axis""medial_axis""medial_axis", 'mixed'"mixed""mixed""mixed""mixed""mixed"

示例(HDevelop)

read_image(Image,'forest_air1')
mean_image(Image,Mean,31,31)
dyn_threshold(Image,Mean,Seg,20,'light')
interjacent(Seg,Graph,'medial_axis')
dev_display(Graph)

示例(C)

read_image(&Image,"forest_air1");
mean_imae(Image,&Mean,31,31);
dyn_threshold(Image,Mean,&Seg,20,"light");
interjacent(Seg,&Graph,"medial_axis");
disp_region(Graph,WindowHandle);

示例(HDevelop)

read_image(Image,'forest_air1')
mean_image(Image,Mean,31,31)
dyn_threshold(Image,Mean,Seg,20,'light')
interjacent(Seg,Graph,'medial_axis')
dev_display(Graph)

示例(HDevelop)

read_image(Image,'forest_air1')
mean_image(Image,Mean,31,31)
dyn_threshold(Image,Mean,Seg,20,'light')
interjacent(Seg,Graph,'medial_axis')
dev_display(Graph)

示例(HDevelop)

read_image(Image,'forest_air1')
mean_image(Image,Mean,31,31)
dyn_threshold(Image,Mean,Seg,20,'light')
interjacent(Seg,Graph,'medial_axis')
dev_display(Graph)

结果

interjacentinterjacentInterjacentInterjacentInterjacentinterjacent 始终返回值 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>),当输入区域为空时则设置行为通过 set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>),以及当结果区域为空时则设置行为通过 set_system('store_empty_region',<'true'/'false'>)set_system("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)SetSystem("store_empty_region",<"true"/"false">)set_system("store_empty_region",<"true"/"false">)。如有必要,则抛出异常。

可能的前趋

thresholdthresholdThresholdThresholdThresholdthreshold, connectionconnectionConnectionConnectionConnectionconnection, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, pouringpouringPouringPouringPouringpouring

可能的后继

select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape, disp_regiondisp_regionDispRegionDispRegionDispRegiondisp_region

另见

expand_regionexpand_regionExpandRegionExpandRegionExpandRegionexpand_region, junctions_skeletonjunctions_skeletonJunctionsSkeletonJunctionsSkeletonJunctionsSkeletonjunctions_skeleton, boundaryboundaryBoundaryBoundaryBoundaryboundary

模块

基础