lowlandslowlandsLowlandsLowlandslowlands (Operator)
lowlandslowlandsLowlandsLowlandslowlands — Detect all gray value lowlands.
Signature
def lowlands(image: HObject) -> HObject
 
Description
lowlandslowlandsLowlandsLowlandslowlands extracts all points from ImageImageImageimageimage  with a gray value
less or equal to the gray value of its neighbors (8-neighborhood) and
returns them in LowlandsLowlandsLowlandslowlandslowlands. Each lowland is returned as a separate
region.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on tuple level.
Parameters
ImageImageImageimageimage (input_object)  singlechannelimage(-array) → objectHImageHObjectHObjectHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)
 
Image to be processed.
 
LowlandsLowlandsLowlandslowlandslowlands (output_object)  region-array → objectHRegionHObjectHObjectHobject *
 
Extracted lowlands as regions (one region for
each lowland).
 
Example (C++)
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
using namespace Halcon;
int main (int argc, char *argv[])
{
  if (argc != 2)
  {
    cout << "Usage : " << argv[0] << " <name of image>" << endl;
    return (-1);
  }
  HImage   image (argv[1]);
  HWindow  win;
  image.Display (win);
  HImage       cres = image.CornerResponse (5, 0.04);
  HRegionArray mins = cres.Lowlands ();
  win.SetColored (12);
  mins.Display (win);
  win.Click ();
  return (0);
}
 
Example (C)
read_image(&Image,"fabrik");
corner_responce(Image,&CornerResp,5,0.04);
lowlands(CornerResp,&Minima);
set_colored(WindowHandle,12);
disp_region(Minima,WindowHandle);
T_area_center(Minima,NULL,&Row,&Col);
 
Example (C++)
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
using namespace Halcon;
int main (int argc, char *argv[])
{
  if (argc != 2)
  {
    cout << "Usage : " << argv[0] << " <name of image>" << endl;
    return (-1);
  }
  HImage   image (argv[1]);
  HWindow  win;
  image.Display (win);
  HImage       cres = image.CornerResponse (5, 0.04);
  HRegionArray mins = cres.Lowlands ();
  win.SetColored (12);
  mins.Display (win);
  win.Click ();
  return (0);
}
 
Example (C++)
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
using namespace Halcon;
int main (int argc, char *argv[])
{
  if (argc != 2)
  {
    cout << "Usage : " << argv[0] << " <name of image>" << endl;
    return (-1);
  }
  HImage   image (argv[1]);
  HWindow  win;
  image.Display (win);
  HImage       cres = image.CornerResponse (5, 0.04);
  HRegionArray mins = cres.Lowlands ();
  win.SetColored (12);
  mins.Display (win);
  win.Click ();
  return (0);
}
 
Possible Predecessors
binomial_filterbinomial_filterBinomialFilterBinomialFilterbinomial_filter, 
gauss_filtergauss_filterGaussFilterGaussFiltergauss_filter, 
smooth_imagesmooth_imageSmoothImageSmoothImagesmooth_image
Possible Successors
area_centerarea_centerAreaCenterAreaCenterarea_center, 
get_region_pointsget_region_pointsGetRegionPointsGetRegionPointsget_region_points, 
select_shapeselect_shapeSelectShapeSelectShapeselect_shape
Alternatives
lowlands_centerlowlands_centerLowlandsCenterLowlandsCenterlowlands_center, 
gray_skeletongray_skeletonGraySkeletonGraySkeletongray_skeleton, 
local_minlocal_minLocalMinLocalMinlocal_min
See also
monotonymonotonyMonotonyMonotonymonotony, 
topographic_sketchtopographic_sketchTopographicSketchTopographicSketchtopographic_sketch, 
corner_responsecorner_responseCornerResponseCornerResponsecorner_response, 
texture_lawstexture_lawsTextureLawsTextureLawstexture_laws
Module
Foundation