min_max_gray min_max_gray MinMaxGray MinMaxGray min_max_gray (Operator)
Name
min_max_gray min_max_gray MinMaxGray MinMaxGray min_max_gray — Minimale und maximale Grauwerte innerhalb von Regionen.
Signatur
Herror min_max_gray (const Hobject Regions , const Hobject Image , double Percent , double* Min , double* Max , double* Range )
Herror T_min_max_gray (const Hobject Regions , const Hobject Image , const Htuple Percent , Htuple* Min , Htuple* Max , Htuple* Range )
void MinMaxGray (const HObject& Regions , const HObject& Image , const HTuple& Percent , HTuple* Min , HTuple* Max , HTuple* Range )
void HImage ::MinMaxGray (const HRegion& Regions , const HTuple& Percent , HTuple* Min , HTuple* Max , HTuple* Range ) const
void HImage ::MinMaxGray (const HRegion& Regions , double Percent , double* Min , double* Max , double* Range ) const
void HRegion ::MinMaxGray (const HImage& Image , const HTuple& Percent , HTuple* Min , HTuple* Max , HTuple* Range ) const
void HRegion ::MinMaxGray (const HImage& Image , double Percent , double* Min , double* Max , double* Range ) const
static void HOperatorSet .MinMaxGray (HObject regions , HObject image , HTuple percent , out HTuple min , out HTuple max , out HTuple range )
void HImage .MinMaxGray (HRegion regions , HTuple percent , out HTuple min , out HTuple max , out HTuple range )
void HImage .MinMaxGray (HRegion regions , double percent , out double min , out double max , out double range )
void HRegion .MinMaxGray (HImage image , HTuple percent , out HTuple min , out HTuple max , out HTuple range )
void HRegion .MinMaxGray (HImage image , double percent , out double min , out double max , out double range )
def min_max_gray (regions : HObject, image : HObject, percent : Union[int, float]) -> Tuple[Sequence[float], Sequence[float], Sequence[float]]
def min_max_gray_s (regions : HObject, image : HObject, percent : Union[int, float]) -> Tuple[float, float, float]
Beschreibung
min_max_gray min_max_gray MinMaxGray MinMaxGray min_max_gray erstellt das Histogramm der absoluten
Häufigkeiten der Grauwerte innerhalb von Regions Regions Regions regions regions im
Eingabebild Image Image Image image image (siehe gray_histo gray_histo GrayHisto GrayHisto gray_histo ) und
berechnet die Anzahl der Bildpunkte, die Percent Percent Percent percent percent der
Fläche des Eingabebildes entspricht. Daraufhin wird auf beiden
Seiten des Histogramms um diese Anzahl von Bildpunkten nach innen
gegangen und der kleinste und größte Grauwert bestimmt:
Beispiel:
Mit Fläche = 60, Percent Percent Percent percent percent = 5 , d.h. 3 Bildpunkte,
Histogramm = [2,8,0,7,13,0,0,...,0,10,10,5,3,1,1],
Minimum = 0, Maximum = 255, Spanne = 255
min_max_gray min_max_gray MinMaxGray MinMaxGray min_max_gray liefert:
Min Min Min min min = 1 ,
Max Max Max max max = 253 ,
Range Range Range range range = 252 .
Für Bilder vom Typ int4, int8 und real wird die
obige Berechnung nicht über Histogramme sondern über Selektion des
entsprechenden Grauwertes durchgeführt.
Wird Percent Percent Percent percent percent auf 50 gesetzt, dann
ist Min Min Min min min = Max Max Max max max = Median. Wenn Percent Percent Percent percent percent
gleich 0 ist, dann wird kein Histogramm berechnet, um die Laufzeit
zu verbessern.
Achtung
Der Operator min_max_gray min_max_gray MinMaxGray MinMaxGray min_max_gray berücksichtigt nur die mittels
Regions Regions Regions regions regions übergebenen Regionen und ignoriert jede Domäne, die zuvor
für das Eingabebild Image Image Image image image festgelegt wurde.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf Tupelebene.
Parameter
Regions Regions Regions regions regions (input_object) region(-array) → object HRegion HObject HObject Hobject
Regionen, deren Merkmale berechnet werden sollen.
Image Image Image image image (input_object) singlechannelimage → object HImage HObject HObject Hobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)
Grauwertdaten.
Percent Percent Percent percent percent (input_control) number → HTuple Union[int, float] HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Prozentsatz unterhalb (oberhalb) des absoluten
Maximums (Minimums).
Default:
0
Wertevorschläge:
0, 1, 2, 5, 7, 10, 15, 20, 30, 40, 50
Restriktion:
0 <= Percent && Percent <= 50
Min Min Min min min (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
„Minimaler“ Grauwert.
Max Max Max max max (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
„Maximaler“ Grauwert.
Zusicherung:
Max >= Min
Range Range Range range range (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Differenz aus Max und Min.
Zusicherung:
Range >= 0
Beispiel (HDevelop)
* Threshold segmentation with training region:
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
min_max_gray(Region,Image,5,Min,Max,Range)
threshold(Image,SegmentedRegion,Min,Max)
dev_display(SegmentedRegion)
Beispiel (C)
/* Threshold segmentation with training region: */
read_image(&Image,"fabrik");
draw_region(&Region,WindowHandle);
min_max_gray(Region,Image,5.0,&Min,&Max,NULL);
threshold(Image,&SegmentedRegion,Min,Max);
disp_region(SegmentedRegion,WindowHandle);
Beispiel (C++)
#include "HalconCpp.h"
using namespace Halcon;
#include "HIOStream.h"
#if !defined(USE_IOSTREAM_H)
using namespace std;
#endif
main()
{
HImage img ("fabrik");
HWindow w;
Htuple range, max;
img.Display (w);
w.Click ();
HRegion reg = w.DrawRegion ();
HImage rdd = img.ReduceDomain (reg);
Htuple min = reg.MinMaxGray (rdd, 5, &max, &range);
HRegionArray imgseg = ((img >= min[0].I()).Connection() &
(img <= max[0].I()).Connection());
cout << "Min = " << min[0].I() << endl;
cout << "Max = " << max[0].I() << endl;
imgseg.Display (w);
w.Click ();
return(0);
}
Beispiel (HDevelop)
* Threshold segmentation with training region:
read_image(Image,'fabrik')
draw_region(Region,WindowHandle)
min_max_gray(Region,Image,5,Min,Max,Range)
threshold(Image,SegmentedRegion,Min,Max)
dev_display(SegmentedRegion)
Ergebnis
min_max_gray min_max_gray MinMaxGray MinMaxGray min_max_gray liefert den Wert 2 (
H_MSG_TRUE )
, falls das Eingabebild
definierte Grauwerte besitzt und die Parameter korrekt sind. Das
Verhalten bei leerer Eingabe (keine Eingabebilder) wird mit
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>) ,
das bei leerer Region mit
set_system(::'empty_region_result',<Result>:) set_system("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) set_system("empty_region_result",<Result>) festgelegt.
Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
draw_region draw_region DrawRegion DrawRegion draw_region ,
gen_circle gen_circle GenCircle GenCircle gen_circle ,
gen_ellipse gen_ellipse GenEllipse GenEllipse gen_ellipse ,
gen_rectangle1 gen_rectangle1 GenRectangle1 GenRectangle1 gen_rectangle1 ,
threshold threshold Threshold Threshold threshold ,
regiongrowing regiongrowing Regiongrowing Regiongrowing regiongrowing
Nachfolger
threshold threshold Threshold Threshold threshold
Alternativen
select_gray select_gray SelectGray SelectGray select_gray ,
intensity intensity Intensity Intensity intensity
Siehe auch
gray_histo gray_histo GrayHisto GrayHisto gray_histo ,
scale_image scale_image ScaleImage ScaleImage scale_image ,
scale_image_max scale_image_max ScaleImageMax ScaleImageMax scale_image_max ,
learn_ndim_norm learn_ndim_norm LearnNdimNorm LearnNdimNorm learn_ndim_norm
Modul
Foundation