gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rect (Operator)

Name

gen_image1_rectgen_image1_rectGenImage1RectGenImage1Rect — Erzeugen eines Bildes mit rechteckiger Domäne aus einem Zeiger auf Pixel (mit Speicherverwaltung).

Signatur

gen_image1_rect( : Image : PixelPointer, Width, Height, VerticalPitch, HorizontalBitPitch, BitsPerPixel, DoCopy, ClearProc : )

Herror gen_image1_rect(Hobject* Image, const Hlong PixelPointer, const Hlong Width, const Hlong Height, const Hlong VerticalPitch, const Hlong HorizontalBitPitch, const Hlong BitsPerPixel, const char* DoCopy, const Hlong ClearProc)

Herror T_gen_image1_rect(Hobject* Image, const Htuple PixelPointer, const Htuple Width, const Htuple Height, const Htuple VerticalPitch, const Htuple HorizontalBitPitch, const Htuple BitsPerPixel, const Htuple DoCopy, const Htuple ClearProc)

void GenImage1Rect(HObject* Image, const HTuple& PixelPointer, const HTuple& Width, const HTuple& Height, const HTuple& VerticalPitch, const HTuple& HorizontalBitPitch, const HTuple& BitsPerPixel, const HTuple& DoCopy, const HTuple& ClearProc)

void HImage::GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const HString& DoCopy, void* ClearProc)

void HImage::GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const char* DoCopy, void* ClearProc)

void HImage::GenImage1Rect(void* PixelPointer, Hlong Width, Hlong Height, Hlong VerticalPitch, Hlong HorizontalBitPitch, Hlong BitsPerPixel, const wchar_t* DoCopy, void* ClearProc)   (Nur Windows)

static void HOperatorSet.GenImage1Rect(out HObject image, HTuple pixelPointer, HTuple width, HTuple height, HTuple verticalPitch, HTuple horizontalBitPitch, HTuple bitsPerPixel, HTuple doCopy, HTuple clearProc)

void HImage.GenImage1Rect(IntPtr pixelPointer, int width, int height, int verticalPitch, int horizontalBitPitch, int bitsPerPixel, string doCopy, IntPtr clearProc)

Beschreibung

Der Operator gen_image1_rectgen_image1_rectGenImage1RectGenImage1RectGenImage1Rect erzeugt ein Bild in der Größe (VerticalPitchVerticalPitchVerticalPitchVerticalPitchverticalPitch/(HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitch/8)) * HeightHeightHeightHeightheight. Die Pixel in PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer werden zeilensequentiell abgelegt. 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. VerticalPitchVerticalPitchVerticalPitchVerticalPitchverticalPitch entspricht dem Abstand (in Bytes) des m-ten Bildpunktes in Zeile n und des m-ten Bildpunktes in Zeile n+1 innerhalb des Speichers und ist für alle Zeilen des 'Eingabebildes' identisch. Die Breite des Ausgabebildes ist VerticalPitchVerticalPitchVerticalPitchVerticalPitchverticalPitch / (HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitch / 8), seine Höhe ist HeightHeightHeightHeightheight. Die Domäne des Ausgabebildes ImageImageImageImageimage ist ein Rechteck der Größe WidthWidthWidthWidthwidth * HeightHeightHeightHeightheight. Der Parameter HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitch ist der horizontale Abstand (in Bits) benachbarter Pixel. BitsPerPixelBitsPerPixelBitsPerPixelBitsPerPixelbitsPerPixel ist die Anzahl der verwendeten Bits pro Pixel.

Ist DoCopyDoCopyDoCopyDoCopydoCopy auf 'true' gesetzt, werden die von PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer referenzierten Bilddaten kopiert und Speicher für das neue Bild wird von HALCON neu angelegt. Andernfalls muss der Speicherbereich auf den PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer zeigt wieder freigegeben werden. Dies geschieht durch die vom Aufrufer zur Verfügung gestellte Prozedur ClearProcClearProcClearProcClearProcclearProc. Diese Prozedur muss folgende Signatur haben

void ClearProc(void* ptr);

und wird beim Löschen von ImageImageImageImageimage mit der __cdecl Aufrufkonvention aufgerufen. Falls der Speicher nicht freigegeben werden soll (im Fall von Framegrabbern oder statischem Speicher) kann eine Prozedur “ohne Rumpf“ oder der NULL-Pointer übergeben werden. Analog zum Parameter PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer muss der Zeiger auf die Prozedur abhängig von der benutzten Operatorsignatur und der Programmierumgebung übergeben werden. Ist DoCopyDoCopyDoCopyDoCopydoCopy gleich 'true' so ist ClearProcClearProcClearProcClearProcclearProc irrelevant. Der Operator gen_image1_rectgen_image1_rectGenImage1RectGenImage1RectGenImage1Rect ist symmetrisch zu get_image_pointer1_rectget_image_pointer1_rectGetImagePointer1RectGetImagePointer1RectGetImagePointer1Rect.

Achtung

gen_image1_rectgen_image1_rectGenImage1RectGenImage1RectGenImage1Rect überprüft nicht, ob PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer 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

Parameter

ImageImageImageImageimage (output_object)  image objectHImageHImageHobject * (byte / uint2 / int4)

Erzeugtes HALCON-Bild.

PixelPointerPixelPointerPixelPointerPixelPointerpixelPointer (input_control)  pointer HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Zeiger auf das erste Pixel.

WidthWidthWidthWidthwidth (input_control)  extent.x HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des Bildes.

Defaultwert: 512

Wertevorschläge: 128, 256, 512, 1024

Typischer Wertebereich: 1 ≤ Width Width Width Width width ≤ 512 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 10

Restriktion: Width >= 1

HeightHeightHeightHeightheight (input_control)  extent.y HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des Bildes.

Defaultwert: 512

Wertevorschläge: 128, 256, 512, 1024

Typischer Wertebereich: 1 ≤ Height Height Height Height height ≤ 512 (lin)

Minimale Schrittweite: 1

Empfohlene Schrittweite: 10

Restriktion: Height >= 1

VerticalPitchVerticalPitchVerticalPitchVerticalPitchverticalPitch (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Abstand (in Bytes) zwischen Pixel m in Zeile n und Pixel m in Zeile n+1 des 'Eingabebildes'.

Restriktion: VerticalPitch >= Width * HorizontalBitPitch / 8

HorizontalBitPitchHorizontalBitPitchHorizontalBitPitchHorizontalBitPitchhorizontalBitPitch (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Abstand benachbarter Pixel in Bits.

Defaultwert: 8

Werteliste: 8, 16, 32

BitsPerPixelBitsPerPixelBitsPerPixelBitsPerPixelbitsPerPixel (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl verwendeter Bits pro Pixel.

Defaultwert: 8

Werteliste: 8, 9, 10, 11, 12, 13, 14, 15, 16, 32

Restriktion: BitsPerPixel <= HorizontalBitPitch

DoCopyDoCopyDoCopyDoCopydoCopy (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Bilddaten kopieren.

Defaultwert: 'false' "false" "false" "false" "false"

Wertevorschläge: 'true'"true""true""true""true", 'false'"false""false""false""false"

ClearProcClearProcClearProcClearProcclearProc (input_control)  pointer HTupleHTupleHtuple (integer) (IntPtr) (Hlong) (Hlong)

Zeiger auf die Prozedur, die den Speicher des Bildes beim Löschen des Objektes wieder freigibt.

Defaultwert: 0

Beispiel (C)

void NewImage(Hobject *new)
{
  unsigned char       *image;
  int                 r,c;

  image = malloc(640*480);
  for (r=0; r<480; r++)
    for (c=0; c<640; c++)
      image[r*640+c] = c % 255;
  gen_image1_rect(new,(Hlong)image,400,480,640,8,8,'false',(long)free);
}

Ergebnis

Sind die Parameterwerte korrekt, dann liefert gen_image1_rectgen_image1_rectGenImage1RectGenImage1RectGenImage1Rect den Wert 2 (H_MSG_TRUE). Andernfalls wird eine Fehlerbehandlung durchgeführt.

Nachfolger

get_image_pointer1_rectget_image_pointer1_rectGetImagePointer1RectGetImagePointer1RectGetImagePointer1Rect

Alternativen

gen_image1gen_image1GenImage1GenImage1GenImage1, gen_image1_externgen_image1_externGenImage1ExternGenImage1ExternGenImage1Extern, gen_image_constgen_image_constGenImageConstGenImageConstGenImageConst

Siehe auch

get_image_pointer1_rectget_image_pointer1_rectGetImagePointer1RectGetImagePointer1RectGetImagePointer1Rect

Modul

Foundation