Skip to content

local_maxLocalMaxLocalMaxlocal_maxlocal_max🔗

Short description🔗

local_maxLocalMaxLocalMaxlocal_maxlocal_max — Detect all local maxima in an image.

Signature🔗

local_max( image Image, out region LocalMaxima )void LocalMax( const HObject& Image, HObject* LocalMaxima )static void HOperatorSet.LocalMax( HObject image, out HObject localMaxima )def local_max( image: HObject ) -> HObject

Herror local_max( const Hobject Image, Hobject* LocalMaxima )

Herror T_local_max( const Hobject Image, Hobject* LocalMaxima )

HRegion HImage::LocalMax( ) const

HRegion HImage.LocalMax( )

Description🔗

local_maxLocalMax extracts all points from Imageimageimage having a gray value larger than the gray value of all its neighbors and returns them in LocalMaximalocalMaximalocal_maxima. The neighborhood used can be set by set_system(::'neighborhood',<4/8>).

Execution information🔗

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🔗

Imageimageimage (input_object) singlechannelimage(-array) → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HImage (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)HObject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)Hobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)

Input image.

LocalMaximalocalMaximalocal_maxima (output_object) region(-array) → objectHObjectHRegionHObjectHobject *

Extracted local maxima as a region.

Number of elements: LocalMaxima == Image

Example🔗

(C)

read_image(&Image,"fabrik")\;
corner_responce(Image,&CornerResp,5,0.04)\;
local_max(CornerResp,&Maxima)\;
set_colored(WindowHandle,12)\;
disp_region(Maxima,WindowHandle)\;
T_get_region_points(Maxima,&Row,&Col)\;
(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[])
{
  using namespace Halcon\;
  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 maxi = cres.LocalMax ()\;
 win.SetColored (12)\;
  maxi.Display (win)\;
  win.Click ()\;
 return (0)\;
}

Combinations with other operators🔗

Combinations

Possible predecessors

binomial_filterBinomialFilter, gauss_filterGaussFilter, smooth_imageSmoothImage

Possible successors

get_region_pointsGetRegionPoints, connectionConnection

Alternatives

nonmax_suppression_ampNonmaxSuppressionAmp, plateausPlateaus, plateaus_centerPlateausCenter

See also

monotonyMonotony, topographic_sketchTopographicSketch, corner_responseCornerResponse, texture_lawsTextureLaws

Module🔗

Foundation