gen_image1gen_image1GenImage1GenImage1gen_image1 (Operator)
Name
gen_image1gen_image1GenImage1GenImage1gen_image1 — Erzeugen eines Bildes aus einem Zeiger auf die Pixel.
Signatur
void GenImage1(HObject* Image, const HTuple& Type, const HTuple& Width, const HTuple& Height, const HTuple& PixelPointer)
void HImage::HImage(const HString& Type, Hlong Width, Hlong Height, void* PixelPointer)
void HImage::HImage(const char* Type, Hlong Width, Hlong Height, void* PixelPointer)
void HImage::HImage(const wchar_t* Type, Hlong Width, Hlong Height, void* PixelPointer)
(
Nur Windows)
void HImage::GenImage1(const HString& Type, Hlong Width, Hlong Height, void* PixelPointer)
void HImage::GenImage1(const char* Type, Hlong Width, Hlong Height, void* PixelPointer)
void HImage::GenImage1(const wchar_t* Type, Hlong Width, Hlong Height, void* PixelPointer)
(
Nur Windows)
static void HOperatorSet.GenImage1(out HObject image, HTuple type, HTuple width, HTuple height, HTuple pixelPointer)
public HImage(string type, int width, int height, IntPtr pixelPointer)
void HImage.GenImage1(string type, int width, int height, IntPtr pixelPointer)
Beschreibung
gen_image1gen_image1GenImage1GenImage1gen_image1 erzeugt ein Bild in der Größe
WidthWidthWidthwidthwidth * HeightHeightHeightheightheight.
Die Pixel in PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer sind zeilensequentiell abgelegt.
Der Typ der übergebenen Pixel
(PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer) muss mit TypeTypeTypetypetype übereinstimmen
(siehe gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const für eine detailliertere Beschreibung
der Pixeltypen).
Der Speicher für das neue Bild wird von HALCON neu angelegt.
Der Speicherplatz auf den PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer kann also
nach dem Aufruf freigegeben werden.
Wie ein Zeigerwert übergeben wird hängt von der benutzten Operatorsignatur
und der Programmierumgebung ab. Es ist sicherzustellen, dass die
tatsächliche Speicheradresse unter der die Bilddaten gespeichert sind
übergeben wird und nicht die Adresse der Zeigervariablen. Es ist darauf zu
achten, dass 64-Bit-Zeiger auf 64-Bit-Architekturen nicht beschnitten
werden.
Achtung
gen_image1gen_image1GenImage1GenImage1gen_image1 überprüft nicht, ob PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer einen
gültigen Wert hat oder nicht.
Es muss also darauf geachtet werden, dass der Wert gültig ist, da es sonst
zum Programmabsturz kommen kann!
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Parameter
ImageImageImageimageimage (output_object) image → objectHImageHObjectHObjectHobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / real)
Erzeugtes Bild mit neuer Bildmatrix.
TypeTypeTypetypetype (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Pixeltyp.
Default:
'byte'
"byte"
"byte"
"byte"
"byte"
Werteliste:
'byte'"byte""byte""byte""byte", 'cyclic'"cyclic""cyclic""cyclic""cyclic", 'direction'"direction""direction""direction""direction", 'int1'"int1""int1""int1""int1", 'int2'"int2""int2""int2""int2", 'int4'"int4""int4""int4""int4", 'real'"real""real""real""real", 'uint2'"uint2""uint2""uint2""uint2"
WidthWidthWidthwidthwidth (input_control) extent.x → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Breite des Bildes.
Default:
512
Wertevorschläge:
128, 256, 512, 1024
Wertebereich:
1
≤
Width
Width
Width
width
width
(lin)
Minimale Schrittweite:
1
Empfohlene Schrittweite:
10
HeightHeightHeightheightheight (input_control) extent.y → HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Höhe des Bildes.
Default:
512
Wertevorschläge:
128, 256, 512, 1024
Wertebereich:
1
≤
Height
Height
Height
height
height
(lin)
Minimale Schrittweite:
1
Empfohlene Schrittweite:
10
PixelPointerPixelPointerPixelPointerpixelPointerpixel_pointer (input_control) pointer → HTupleintHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)
Zeiger auf den ersten Grauwert.
Beispiel (C)
void NewImage(Hobject *new)
{
unsigned char image[768*525];
int r,c;
for (r=0; r<525; r++)
for (c=0; c<768; c++)
image[r*768+c] = c % 255;
gen_image1(new,"byte",768,525,(Hlong)image);
}
Ergebnis
Sind die Parameterwerte korrekt, dann liefert gen_image1gen_image1GenImage1GenImage1gen_image1
den Wert 2 (
H_MSG_TRUE)
.
Andernfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const,
get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1get_image_pointer1
Alternativen
gen_image3gen_image3GenImage3GenImage3gen_image3,
gen_image1_externgen_image1_externGenImage1ExternGenImage1Externgen_image1_extern,
gen_image_constgen_image_constGenImageConstGenImageConstgen_image_const,
get_image_pointer1get_image_pointer1GetImagePointer1GetImagePointer1get_image_pointer1
Siehe auch
reduce_domainreduce_domainReduceDomainReduceDomainreduce_domain,
paint_graypaint_grayPaintGrayPaintGraypaint_gray,
paint_regionpaint_regionPaintRegionPaintRegionpaint_region,
set_grayvalset_grayvalSetGrayvalSetGrayvalset_grayval
Modul
Foundation