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