set_grayval — Setzen von einzelnen Grauwerten in einem Bildobjekt.
set_grayval setzt die Grauwerte des Eingabebildes
Image. Grayval ist dabei ein Tupel von
Gleitkomma- bzw. ganzen Zahlen, das die Grauwerte enthält, die den
ausgewählten Bildpunkten von Image zugewiesen werden
sollen. Die Zeilenkoordinaten der Bildpunkte stehen in
Row, die Spaltenkoordinaten in Column. Die
Grauwerte können entweder einmal für jedes Pixel, geltend für alle
Kanäle, definiert werden, oder für jedes Pixel und jeden Bildkanal
einzeln. Um Letzteres zu definieren, werden die Kanal-Grauwerte g
zu jedem Pixel gruppiert und zu einem Tupel entsprechend
der Reihenfolge der Kanäle verknüpft, z.B. für ein dreikanaliges
Bild:
[g(channel0,pixel0), g(channel1,pixel0), g(channel2,pixel0), g(channel0,pixel1), ... ].
Dabei ist zu beachten, dass für komplexe und Vektorfeld-Bilder zwei
Grauwerte pro Pixel (pro Kanal) übergeben werden müssen.
Ist das Bild vom Typ direction, werden Grauwerte, die nicht
innerhalb des für direction-Bilder erlaubten Wertebereichs liegen,
auf den Wert 255 gesetzt, um sie als ungültig zu kennzeichnen.
Der Aufwand von set_grayval ist relativ hoch. Normalerweise
wird der Operator verwendet, um einzelne Grauwerte eines Bildes zu
setzen. Für die Programmierung von Bildverarbeitungsoperationen wie
Filter ist er nicht geeignet. Hier ist es sinnvoller, den Operator
get_image_pointer1 und direkt die C- oder C++-Schnittstelle
zum Einbinden von eigenen Prozeduren zu verwenden.
Darüberhinaus ist zu beachten, dass set_grayval den Inhalt
eines bereits bestehenden Bildes (Image) verändert. Zudem
können aber auch andere Bildobjekte betroffen sein: Wenn z.B.
Image mit Hilfe von copy_obj aus einem anderen
Bildobjekt erzeugt wurde, wird auch dessen Bildmatrix überschrieben.
Deshalb sollte set_grayval nur zum Einzeichnen in neu
erzeugte Bildobjekte verwendet werden.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
Image (input_object, Zustand wird modifiziert) (multichannel-)image → object (byte / direction / cyclic / int1 / int2 / uint2 / int4 / int8 / real / complex / vector_field)
Dieses Bild wird modifiziert.
Row (input_control) point.y(-array) → (integer)
Zeilenkoordinaten der zu modifizierenden Bildpunkte.
Defaultwert: 0
Wertevorschläge: 0, 10, 50, 127, 255, 511
Typischer Wertebereich: 0
≤
Row
Restriktion: 0 <= Row && Row < height(Image)
Column (input_control) point.x(-array) → (integer)
Spaltennummern der zu modifizierenden Bildpunkte.
Defaultwert: 0
Wertevorschläge: 0, 10, 50, 127, 255, 511
Typischer Wertebereich: 0
≤
Column
Restriktion: 0 <= Column && Column < width(Image)
Grayval (input_control) grayval(-array) → (real / integer)
Zu setzende Grauwerte.
Defaultwert: 255.0
Wertevorschläge: 0.0, 1.0, 10.0, 128.0, 255.0
Bei korrekter Besetzung der Parameter liefert set_grayval
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.
read_image,
get_image_pointer1,
gen_image_proto,
gen_image1
get_image_pointer1,
paint_gray,
paint_region
get_grayval,
gen_image_const,
gen_image1,
gen_image_proto
Foundation