add_noise_distributionT_add_noise_distributionAddNoiseDistributionAddNoiseDistributionadd_noise_distribution (Operator)
Name
add_noise_distributionT_add_noise_distributionAddNoiseDistributionAddNoiseDistributionadd_noise_distribution — Synthetisches Verrauschen eines Bildes.
Signatur
Beschreibung
add_noise_distributionadd_noise_distributionAddNoiseDistributionAddNoiseDistributionAddNoiseDistributionadd_noise_distribution Überlagert das Eingabebild (ImageImageImageImageimageimage)
mit Rauschen, das der Verteilung von DistributionDistributionDistributionDistributiondistributiondistribution entspricht. Es
erfolgt ein Clipping der resultierenden Grauwerte auf den Bereich des
entsprechenden Pixeltyps.
Die Verteilung wird in einem Tupel der Länge 513 übergeben. Die einzelnen
Werte dieses Tupels legen die Häufigkeit der Pixel fest, die mit einer
bestimmten Amplitude verrauscht werden. Diese Amplitude ist durch die
Position des Häufigkeitswertes im Tupel festgelegt. Der mittlere Wert,
d.h., der Wert an der Position 256 des Tupels legt die Häufigkeit der Pixel
fest, deren Grauwert nicht verändert wird. Der Wert an der Position 255 des
Tupels legt die Häufigkeit der Pixel fest, deren Grauwert um 1 verringert
wird. Der Wert an der Position 254 legt die Häufigkeit der Pixel fest,
deren Grauwert um 2 verringert wird, usw. Analog hierzu legt der Wert an
der Position 257 die Häufigkeit der Pixel fest, deren Grauwert um 1 erhöht
wird.
Wenn maximal ein Wert an einer Position kleiner als 256 und maximal ein Wert
an einer Position größer als 256 ungleich Null ist, so stellt die Verteilung
DistributionDistributionDistributionDistributiondistributiondistribution eine Salz und Pfeffer-Verteilung dar. Im Falle einer
Salz und Pfeffer-Verteilung werden die verrauschten Pixel auf den minimalen
(Pfeffer) bzw. maximalen (Salz) Grauwert gesetzt der in dem Ausgabebild
ImageNoiseImageNoiseImageNoiseImageNoiseimageNoiseimage_noise darstellbar ist, wenn die Häufigkeit von Pfeffer durch
den Wert an der Position 0 bzw. die Häufigkeit von Salz durch den Wert an
der Position 512 im Tupel definiert ist.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
- Automatisch parallelisiert auf Kanalebene.
Parameter
ImageImageImageImageimageimage (input_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject (byte / int2)
Bild, das verrauscht werden soll.
ImageNoiseImageNoiseImageNoiseImageNoiseimageNoiseimage_noise (output_object) (multichannel-)image(-array) → objectHImageHObjectHImageHobject * (byte / int2)
Verrauschtes Bild.
Parameteranzahl: ImageNoise == Image
DistributionDistributionDistributionDistributiondistributiondistribution (input_control) distribution.values-array → HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)
Rauschverteilung.
Parameteranzahl: 513
Beispiel (HDevelop)
read_image(Image,'mreut')
dev_display (Image)
sp_distribution(30,30,Dist)
add_noise_distribution(Image,ImageNoise,Dist)
dev_display (ImageNoise)
Beispiel (C)
read_image(&Image,"fabrik");
disp_image(Image,WindowHandle);
set_d(PerSalt,30.0,0);
set_d(PerPepper,30.0,0);
T_sp_distribution(PerSalt,PerPepper,&Dist);
T_add_noise_distribution(Image,&ImageNoise,Dist);
disp_image(ImageNoise,WindowHandle);
Beispiel (HDevelop)
read_image(Image,'mreut')
dev_display (Image)
sp_distribution(30,30,Dist)
add_noise_distribution(Image,ImageNoise,Dist)
dev_display (ImageNoise)
Beispiel (HDevelop)
read_image(Image,'mreut')
dev_display (Image)
sp_distribution(30,30,Dist)
add_noise_distribution(Image,ImageNoise,Dist)
dev_display (ImageNoise)
Beispiel (HDevelop)
read_image(Image,'mreut')
dev_display (Image)
sp_distribution(30,30,Dist)
add_noise_distribution(Image,ImageNoise,Dist)
dev_display (ImageNoise)
Ergebnis
add_noise_distributionadd_noise_distributionAddNoiseDistributionAddNoiseDistributionAddNoiseDistributionadd_noise_distribution liefert den Wert 2 (H_MSG_TRUE), falls die Parameter
korrekt sind. 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
gauss_distributiongauss_distributionGaussDistributionGaussDistributionGaussDistributiongauss_distribution,
sp_distributionsp_distributionSpDistributionSpDistributionSpDistributionsp_distribution,
noise_distribution_meannoise_distribution_meanNoiseDistributionMeanNoiseDistributionMeanNoiseDistributionMeannoise_distribution_mean
Alternativen
add_noise_whiteadd_noise_whiteAddNoiseWhiteAddNoiseWhiteAddNoiseWhiteadd_noise_white
Siehe auch
sp_distributionsp_distributionSpDistributionSpDistributionSpDistributionsp_distribution,
gauss_distributiongauss_distributionGaussDistributionGaussDistributionGaussDistributiongauss_distribution,
noise_distribution_meannoise_distribution_meanNoiseDistributionMeanNoiseDistributionMeanNoiseDistributionMeannoise_distribution_mean,
add_noise_whiteadd_noise_whiteAddNoiseWhiteAddNoiseWhiteAddNoiseWhiteadd_noise_white
Modul
Foundation