boundaryboundaryBoundaryBoundaryboundary边界(算子)

名称

boundaryboundaryBoundaryBoundaryboundary — 将一个区域缩小到其边界。

签名

boundary(Region : RegionBorder : BoundaryType : )

Herror boundary(const Hobject Region, Hobject* RegionBorder, const char* BoundaryType)

Herror T_boundary(const Hobject Region, Hobject* RegionBorder, const Htuple BoundaryType)

void Boundary(const HObject& Region, HObject* RegionBorder, const HTuple& BoundaryType)

HRegion HRegion::Boundary(const HString& BoundaryType) const

HRegion HRegion::Boundary(const char* BoundaryType) const

HRegion HRegion::Boundary(const wchar_t* BoundaryType) const   ( Windows only)

static void HOperatorSet.Boundary(HObject region, out HObject regionBorder, HTuple boundaryType)

HRegion HRegion.Boundary(string boundaryType)

def boundary(region: HObject, boundary_type: str) -> HObject

描述

boundaryboundaryBoundaryBoundaryBoundaryboundary 计算 RegionRegionRegionRegionregionregion 中每个输入区域的边界,并将结果返回至 RegionBorderRegionBorderRegionBorderRegionBorderregionBorderregion_border。参数 BoundaryTypeBoundaryTypeBoundaryTypeBoundaryTypeboundaryTypeboundary_type 决定边界计算的类型。

轮廓计算采用形态学运算实现。生成的输出区域仅包含输入区域的最小边界,其位置取决于 BoundaryTypeBoundaryTypeBoundaryTypeBoundaryTypeboundaryTypeboundary_type 的取值,该参数支持以下值:

执行信息

参数

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

需计算边界的区域。

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

由此形成的边界。

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

边界类型。

默认值: 'inner' "inner" "inner" "inner" "inner" "inner"

值列表: 'inner'"inner""inner""inner""inner""inner", 'inner_filled'"inner_filled""inner_filled""inner_filled""inner_filled""inner_filled", 'outer'"outer""outer""outer""outer""outer"

示例 (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

示例(C)

/* Intersections of two circles: */
gen_circle(&Circle1,200.0,100.0,100.5);
gen_circle(&Circle2,200.0,150.0,100.5);
boundary(Circle1,&Margin1,"inner");
boundary(Circle2,&Margin2,"inner");
intersection(Margin1,Margin2,&Intersections);
connection(Intersections,&Single);
T_area_center(Single,NULL,&Rows,&Columns);

/* simulation of Mode 'inner' */
void inner(Hobject Region, Hobject *Border)
{
  Hobject  Smaller;
  erosion_circle(Region,&Smaller,1.5);
  difference(Region,Smaller,Border);
}

示例 (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

示例 (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

示例 (C++ (HALCON 5.0-10.0))

#include "HalconCpp.h"
using namespace Halcon;

main()
{
  HWindow  w;
  HRegion  circ1 = HRegion::GenCircle (20, 10, 10.5);

  circ1.Display (w);
  w.Click ();

  HRegion marg1 = circ1.Boundary ("inner");
  w.SetColor ("red");
  marg1.Display (w);
  w.Click ();

  return(0);
}

复杂度

设 A 为输入区域的面积。则单个区域的运行时间复杂度为

结果

boundaryboundaryBoundaryBoundaryBoundaryboundary 在所有参数正确时返回 2 ( H_MSG_TRUE )。当输入区域为空或不存在时,其行为可通过以下方式设置:

否则,将抛出异常。

可能的前趋

thresholdthresholdThresholdThresholdThresholdthreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing, connectionconnectionConnectionConnectionConnectionconnection, union1union1Union1Union1Union1union1, watershedswatershedsWatershedsWatershedsWatershedswatersheds, class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm

可能的后继

reduce_domainreduce_domainReduceDomainReduceDomainReduceDomainreduce_domain, select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape, area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center, connectionconnectionConnectionConnectionConnectionconnection

替代

dilation_circledilation_circleDilationCircleDilationCircleDilationCircledilation_circle, erosion_circleerosion_circleErosionCircleErosionCircleErosionCircleerosion_circle, differencedifferenceDifferenceDifferenceDifferencedifference

另见

fill_upfill_upFillUpFillUpFillUpfill_up

模块

基础