tile_images_offsettile_images_offsetTileImagesOffsetTileImagesOffsettile_images_offset (Operator)

Name

tile_images_offsettile_images_offsetTileImagesOffsetTileImagesOffsettile_images_offset — Zusammenfügen von mehreren Bildobjekten zu einem großen Bild mit expliziter Positionsangabe.

Signatur

tile_images_offset(Images : TiledImage : OffsetRow, OffsetCol, Row1, Col1, Row2, Col2, Width, Height : )

Herror tile_images_offset(const Hobject Images, Hobject* TiledImage, const Hlong OffsetRow, const Hlong OffsetCol, const Hlong Row1, const Hlong Col1, const Hlong Row2, const Hlong Col2, const Hlong Width, const Hlong Height)

Herror T_tile_images_offset(const Hobject Images, Hobject* TiledImage, const Htuple OffsetRow, const Htuple OffsetCol, const Htuple Row1, const Htuple Col1, const Htuple Row2, const Htuple Col2, const Htuple Width, const Htuple Height)

void TileImagesOffset(const HObject& Images, HObject* TiledImage, const HTuple& OffsetRow, const HTuple& OffsetCol, const HTuple& Row1, const HTuple& Col1, const HTuple& Row2, const HTuple& Col2, const HTuple& Width, const HTuple& Height)

HImage HImage::TileImagesOffset(const HTuple& OffsetRow, const HTuple& OffsetCol, const HTuple& Row1, const HTuple& Col1, const HTuple& Row2, const HTuple& Col2, Hlong Width, Hlong Height) const

HImage HImage::TileImagesOffset(Hlong OffsetRow, Hlong OffsetCol, Hlong Row1, Hlong Col1, Hlong Row2, Hlong Col2, Hlong Width, Hlong Height) const

static void HOperatorSet.TileImagesOffset(HObject images, out HObject tiledImage, HTuple offsetRow, HTuple offsetCol, HTuple row1, HTuple col1, HTuple row2, HTuple col2, HTuple width, HTuple height)

HImage HImage.TileImagesOffset(HTuple offsetRow, HTuple offsetCol, HTuple row1, HTuple col1, HTuple row2, HTuple col2, int width, int height)

HImage HImage.TileImagesOffset(int offsetRow, int offsetCol, int row1, int col1, int row2, int col2, int width, int height)

def tile_images_offset(images: HObject, offset_row: MaybeSequence[int], offset_col: MaybeSequence[int], row_1: MaybeSequence[int], col_1: MaybeSequence[int], row_2: MaybeSequence[int], col_2: MaybeSequence[int], width: int, height: int) -> HObject

Beschreibung

tile_images_offsettile_images_offsetTileImagesOffsetTileImagesOffsetTileImagesOffsettile_images_offset fügt mehrere Bildobjekte, die die gleiche Anzahl von Kanälen besitzen müssen, durch Kachelung zu einem großen Bild zusammen. Das Eingabeobjekt ImagesImagesImagesImagesimagesimages besteht aus Num Bildern, die unterschiedlich groß sein können. Alle Kanäle von ImagesImagesImagesImagesimagesimages müssen vom gleichen Typ sein. Das Ausgabebild TiledImageTiledImageTiledImageTiledImagetiledImagetiled_image besteht aus einem Bildobjekt, das genauso viele Kanäle besitzt, wie die Eingabebilder. Die Größe des Ausgabebildes wird durch die Parameter WidthWidthWidthWidthwidthwidth und HeightHeightHeightHeightheightheight bestimmt. Die Position der oberen linken Ecke der Eingabebilder im Ausgabebild wird durch die Parameter OffsetRowOffsetRowOffsetRowOffsetRowoffsetRowoffset_row und OffsetColOffsetColOffsetColOffsetColoffsetColoffset_col bestimmt. Die beiden Parameter müssen genau Num Werte enthalten. Optional kann jedes Eingabebild auf ein beliebiges Rechteck, das kleiner als das Eingabebild ist, zugeschnitten werden. Hierzu sind die Parameter Row1Row1Row1Row1row1row_1, Col1Col1Col1Col1col1col_1, Row2Row2Row2Row2row2row_2 und Col2Col2Col2Col2col2col_2 entsprechend zu setzen. Wird irgendeiner dieser vier Parameter auf -1 gesetzt, wird das entsprechende Eingabebild nicht beschnitten. In jedem Fall müssen alle vier Parameter Num Werte enthalten. Falls die Eingabebilder beschnitten werden, beziehen sich die Positionsparameter OffsetRowOffsetRowOffsetRowOffsetRowoffsetRowoffset_row und OffsetColOffsetColOffsetColOffsetColoffsetColoffset_col auf die obere linke Ecke des beschnittenen Bildes. Falls sich die Eingabebilder im Ausgabebild überlappen (unter der Beachtung des jeweiligen Definitionsbereiches), so überschreibt ein Bild mit höherem Index in ImagesImagesImagesImagesimagesimages die Bilddaten eines vorhergehenden Bildes. Der Definitionsbereich (die Region) des Ausgabebildes TiledImageTiledImageTiledImageTiledImagetiledImagetiled_image wird berechnet, indem die Regionen des Eingabebildes ImagesImagesImagesImagesimagesimages an die entsprechenden Stellen im Ausgabebild kopiert werden.

Achtung

Falls die Bilder alle gleich groß sind und sich genau aneinanderfügen, ist der Operator tile_imagestile_imagesTileImagesTileImagesTileImagestile_images normalerweise etwas schneller.

Ausführungsinformationen

Parameter

ImagesImagesImagesImagesimagesimages (input_object)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)

Eingabebilder.

TiledImageTiledImageTiledImageTiledImagetiledImagetiled_image (output_object)  (multichannel-)image objectHImageHObjectHImageHobject * (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real)

Gekacheltes Ausgabebild.

OffsetRowOffsetRowOffsetRowOffsetRowoffsetRowoffset_row (input_control)  point.y(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenkoordinate der linken oberen Ecke der Eingabebilder im Ausgabebild.

Defaultwert: 0

Wertevorschläge: 0, 50, 100, 150, 200, 250

OffsetColOffsetColOffsetColOffsetColoffsetColoffset_col (input_control)  point.x(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenkoordinate der linken oberen Ecke der Eingabebilder im Ausgabebild.

Defaultwert: 0

Wertevorschläge: 0, 50, 100, 150, 200, 250

Row1Row1Row1Row1row1row_1 (input_control)  rectangle.origin.y(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenkoordinate der oberen linken Ecke des zu kopierenden Teils des jeweiligen Bildes.

Defaultwert: -1

Wertevorschläge: -1, 0, 10, 20, 50, 100, 200, 300, 500

Col1Col1Col1Col1col1col_1 (input_control)  rectangle.origin.x(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenkoordinate der oberen linken Ecke des zu kopierenden Teils des jeweiligen Bildes.

Defaultwert: -1

Wertevorschläge: -1, 0, 10, 20, 50, 100, 200, 300, 500

Row2Row2Row2Row2row2row_2 (input_control)  rectangle.corner.y(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenkoordinate der rechten unteren Ecke des zu kopierenden Teils des jeweiligen Bildes.

Defaultwert: -1

Wertevorschläge: -1, 0, 10, 20, 50, 100, 200, 300, 500

Col2Col2Col2Col2col2col_2 (input_control)  rectangle.corner.x(-array) HTupleMaybeSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenkoordinate der rechten unteren Ecke des zu kopierenden Teils des jeweiligen Bildes.

Defaultwert: -1

Wertevorschläge: -1, 0, 10, 20, 50, 100, 200, 300, 500

WidthWidthWidthWidthwidthwidth (input_control)  extent.x HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Breite des Ausgabebildes.

Defaultwert: 512

Wertevorschläge: 32, 64, 128, 256, 512, 768, 1024, 2048, 4096

HeightHeightHeightHeightheightheight (input_control)  extent.y HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Höhe des Ausgabebildes.

Defaultwert: 512

Wertevorschläge: 32, 64, 128, 256, 512, 525, 1024, 2048, 4096

Beispiel (HDevelop)

* Example 1
* Grab 2 (multi-channel) NTSC images, crop the bottom 5 lines off
* of each image, the right 5 columns off of the first image, and
* the left five lines off of the second image, and put the cropped
* images side-by-side.
gen_empty_obj (Images)
for I := 1 to 2 by 1
    grab_image_async (ImageGrabbed, AcqHandle, -1)
    concat_obj (Images, ImageGrabbed, Images)
endfor
tile_images_offset (Images, TiledImage, [0,635], [0,0], [0,0], \
                    [0,5], [474,474], [634,639], 635, 950)

* Example 2
* Enlarge image by 15 rows and columns on all sides
EnlargeColsBy := 15
EnlargeRowsBy := 15
get_image_pointer1 (Image, Pointer, Type, WidthImage, HeightImage)
tile_images_offset (Image, EnlargedImage, EnlargeRowsBy, EnlargeColsBy, \
                    -1, -1, -1, -1, WidthImage + EnlargeColsBy*2, \
                    HeightImage + EnlargeRowsBy*2)

Ergebnis

Sind die Parameterwerte korrekt und tritt kein Fehler während der Berechnung auf, liefert tile_images_offsettile_images_offsetTileImagesOffsetTileImagesOffsetTileImagesOffsettile_images_offset den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder 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>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

append_channelappend_channelAppendChannelAppendChannelAppendChannelappend_channel

Alternativen

tile_channelstile_channelsTileChannelsTileChannelsTileChannelstile_channels, tile_imagestile_imagesTileImagesTileImagesTileImagestile_images

Siehe auch

change_formatchange_formatChangeFormatChangeFormatChangeFormatchange_format, crop_partcrop_partCropPartCropPartCropPartcrop_part, crop_rectangle1crop_rectangle1CropRectangle1CropRectangle1CropRectangle1crop_rectangle1

Modul

Foundation