select_region_pointselect_region_pointSelectRegionPointSelectRegionPointselect_region_point (Operator)

Name

select_region_pointselect_region_pointSelectRegionPointSelectRegionPointselect_region_point — Auswählen aller Regionen, die einen übergebenen Punkt enthalten.

Signatur

select_region_point(Regions : DestRegions : Row, Column : )

Herror select_region_point(const Hobject Regions, Hobject* DestRegions, const Hlong Row, const Hlong Column)

Herror T_select_region_point(const Hobject Regions, Hobject* DestRegions, const Htuple Row, const Htuple Column)

void SelectRegionPoint(const HObject& Regions, HObject* DestRegions, const HTuple& Row, const HTuple& Column)

HRegion HRegion::SelectRegionPoint(Hlong Row, Hlong Column) const

static void HOperatorSet.SelectRegionPoint(HObject regions, out HObject destRegions, HTuple row, HTuple column)

HRegion HRegion.SelectRegionPoint(int row, int column)

def select_region_point(regions: HObject, row: int, column: int) -> HObject

Beschreibung

select_region_pointselect_region_pointSelectRegionPointSelectRegionPointselect_region_point selektiert alle Regionen aus RegionsRegionsRegionsregionsregions, die den Testpunkt (RowRowRowrowrow,ColumnColumnColumncolumncolumn) enthalten, d.h.:

Achtung

Es kann vorkommen, dass mehr als eine Region den Punkt enthält, falls sich die Regionen überlappen. In diesem Fall werden all diese Regionen ausgegeben. Falls keine Region den angegebenen Punkt enthält, wird das leere Tupel (=keine Region) ausgegeben.

Ausführungsinformationen

Parameter

RegionsRegionsRegionsregionsregions (input_object)  region-array objectHRegionHObjectHObjectHobject

Zu untersuchende Regionen.

DestRegionsDestRegionsDestRegionsdestRegionsdest_regions (output_object)  region-array objectHRegionHObjectHObjectHobject *

Alle Regionen, die den Testpunkt enthalten.

RowRowRowrowrow (input_control)  point.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenindex des Testpunktes.

Default: 100

ColumnColumnColumncolumncolumn (input_control)  point.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenindex des Testpunktes.

Default: 100

Beispiel (HDevelop)

read_image(Image,'fabrik')
regiongrowing(Image,Seg,3,3,5,0)
dev_set_color('red')
dev_set_draw('margin')
Button := 1
while (Button == 1)
  get_mbutton(WindowHandle,Row,Column,Button)
  select_region_point(Seg,Single,Row,Column)
  dev_display(Image)
  dev_display(Single)
endwhile

Beispiel (C)

read_image(&Image,"fabrik");
regiongrowing(Image,&Seg,3,3,5.0,0);
do {
  printf("Select the region with the mouse (End right button \n");
  get_mbutton(WindowHandle,&Row,&Column,&Button);
  select_region_point(Seg,&Single,Row,Column);
  clear(Single);
} while(Button != 4);

Beispiel (C++)

#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
#include "HalconCpp.h"
using namespace Halcon;

int main ()
{
  HImage        img ("fabrik");
  HWindow       w;
  HRegionArray  ireg, reg;
  DPoint2D      rc;
  int           Button;

  reg = img.Regiongrowing (3, 3, 5, 100);
  reg.Display (w);
  w.SetColor ("red");
  w.SetDraw  ("margin");

  cout << "Select any region with left mouse button (right button ends)"
       << endl;
  do
  {
    rc = w.GetMbutton (&Button);
    cout << "[x, y] = " << (Hlong) rc.X() << ", " << (long) rc.Y() << endl;
    ireg = reg.SelectRegionPoint ((Hlong) rc.Y(), (long) rc.X());
    img.Display (w);
    ireg.Display (w);
  } while (Button != 4);
  return(0);
}

Beispiel (HDevelop)

read_image(Image,'fabrik')
regiongrowing(Image,Seg,3,3,5,0)
dev_set_color('red')
dev_set_draw('margin')
Button := 1
while (Button == 1)
  get_mbutton(WindowHandle,Row,Column,Button)
  select_region_point(Seg,Single,Row,Column)
  dev_display(Image)
  dev_display(Single)
endwhile

Komplexität

Sei F die Fläche einer Region und N die Anzahl der Regionen, dann beträgt die Laufzeitkomplexität im Mittel O(ln(sqrt(F)) * N).

Ergebnis

select_region_pointselect_region_pointSelectRegionPointSelectRegionPointselect_region_point liefert den Wert 2 ( H_MSG_TRUE) , falls die Parameter korrekt sind. Das Verhalten bei leerer Eingabe (keine Eingaberegionen vorhanden) lässt sich mittels set_system('no_object_result',<Result>)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

thresholdthresholdThresholdThresholdthreshold, regiongrowingregiongrowingRegiongrowingRegiongrowingregiongrowing, connectionconnectionConnectionConnectionconnection

Alternativen

test_region_pointtest_region_pointTestRegionPointTestRegionPointtest_region_point

Siehe auch

get_mbuttonget_mbuttonGetMbuttonGetMbuttonget_mbutton, get_mpositionget_mpositionGetMpositionGetMpositionget_mposition

Modul

Foundation