| Operatoren |
tile_images_offset — Zusammenfügen von mehreren Bildobjekten zu einem großen Bild mit expliziter Positionsangabe.
tile_images_offset(Images : TiledImage : OffsetRow, OffsetCol, Row1, Col1, Row2, Col2, Width, Height : )
tile_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 Images besteht aus Num Bildern, die unterschiedlich groß sein können. Das Ausgabebild TiledImage besteht aus einem Bildobjekt, das genauso viele Kanäle besitzt, wie die Eingabebilder. Die Größe des Ausgabebildes wird durch die Parameter Width und Height bestimmt. Die Position der oberen linken Ecke der Eingabebilder im Ausgabebild wird durch die Parameter OffsetRow und OffsetCol 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 Row1, Col1, Row2 und Col2 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 OffsetRow und OffsetCol 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 Images die Bilddaten eines vorhergehenden Bildes. Der Definitionsbereich (die Region) des Ausgabebildes TiledImage wird berechnet, indem die Regionen des Eingabebildes Images an die entsprechenden Stellen im Ausgabebild kopiert werden.
Falls die Bilder alle gleich groß sind und sich genau aneinanderfügen, ist der Operator tile_images normalerweise etwas schneller.
Eingabebilder.
Gekacheltes Ausgabegild.
Zeilenkoordinate der linken oberen Ecke der Eingabebilder im Ausgabebild.
Defaultwert: 0
Wertevorschläge: 0, 50, 100, 150, 200, 250
Spaltenkoordinate der linken oberen Ecke der Eingabebilder im Ausgabebild.
Defaultwert: 0
Wertevorschläge: 0, 50, 100, 150, 200, 250
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
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
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
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
Breite des Ausgabeildes.
Defaultwert: 512
Wertevorschläge: 32, 64, 128, 256, 512, 768, 1024, 2048, 4096
Höhe des Ausgabeildes.
Defaultwert: 512
Wertevorschläge: 32, 64, 128, 256, 512, 525, 1024, 2048, 4096
* 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)
Sind die Parameterwerte korrekt und tritt kein Fehler während der Berechnung auf, liefert tile_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>:) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
change_format, crop_part, crop_rectangle1
Foundation
| Operatoren |