tile_images_offsettile_images_offsetTileImagesOffsetTileImagesOffset (Operator)

Name

tile_images_offsettile_images_offsetTileImagesOffsetTileImagesOffset — 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)

Beschreibung

tile_images_offsettile_images_offsetTileImagesOffsetTileImagesOffsetTileImagesOffset fügt mehrere Bildobjekte, die die gleiche Anzahl von Kanälen besitzen müssen, durch Kachelung zu einem großen Bild zusammen. Das Eingabeobjekt ImagesImagesImagesImagesimages besteht aus Num Bildern, die unterschiedlich groß sein können. Das Ausgabebild TiledImageTiledImageTiledImageTiledImagetiledImage besteht aus einem Bildobjekt, das genauso viele Kanäle besitzt, wie die Eingabebilder. Die Größe des Ausgabebildes wird durch die Parameter WidthWidthWidthWidthwidth und HeightHeightHeightHeightheight bestimmt. Die Position der oberen linken Ecke der Eingabebilder im Ausgabebild wird durch die Parameter OffsetRowOffsetRowOffsetRowOffsetRowoffsetRow und OffsetColOffsetColOffsetColOffsetColoffsetCol 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 Row1Row1Row1Row1row1, Col1Col1Col1Col1col1, Row2Row2Row2Row2row2 und Col2Col2Col2Col2col2 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 OffsetRowOffsetRowOffsetRowOffsetRowoffsetRow und OffsetColOffsetColOffsetColOffsetColoffsetCol 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 ImagesImagesImagesImagesimages die Bilddaten eines vorhergehenden Bildes. Der Definitionsbereich (die Region) des Ausgabebildes TiledImageTiledImageTiledImageTiledImagetiledImage wird berechnet, indem die Regionen des Eingabebildes ImagesImagesImagesImagesimages 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_imagesTileImagesTileImagesTileImages normalerweise etwas schneller.

Ausführungsinformationen

Parameter

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

Eingabebilder.

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

Gekacheltes Ausgabegild.

OffsetRowOffsetRowOffsetRowOffsetRowoffsetRow (input_control)  point.y(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zeilenkoordinate der linken oberen Ecke der Eingabebilder im Ausgabebild.

Defaultwert: 0

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

OffsetColOffsetColOffsetColOffsetColoffsetCol (input_control)  point.x(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Spaltenkoordinate der linken oberen Ecke der Eingabebilder im Ausgabebild.

Defaultwert: 0

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

Row1Row1Row1Row1row1 (input_control)  rectangle.origin.y(-array) HTupleHTupleHtuple (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

Col1Col1Col1Col1col1 (input_control)  rectangle.origin.x(-array) HTupleHTupleHtuple (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

Row2Row2Row2Row2row2 (input_control)  rectangle.corner.y(-array) HTupleHTupleHtuple (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

Col2Col2Col2Col2col2 (input_control)  rectangle.corner.x(-array) HTupleHTupleHtuple (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

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

Breite des Ausgabeildes.

Defaultwert: 512

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

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

Höhe des Ausgabeildes.

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_offsetTileImagesOffsetTileImagesOffsetTileImagesOffset 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>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

append_channelappend_channelAppendChannelAppendChannelAppendChannel

Alternativen

tile_channelstile_channelsTileChannelsTileChannelsTileChannels, tile_imagestile_imagesTileImagesTileImagesTileImages

Siehe auch

change_formatchange_formatChangeFormatChangeFormatChangeFormat, crop_partcrop_partCropPartCropPartCropPart, crop_rectangle1crop_rectangle1CropRectangle1CropRectangle1CropRectangle1

Modul

Foundation