add_noise_distributionT_add_noise_distributionAddNoiseDistributionAddNoiseDistribution (Operator)

Name

add_noise_distributionT_add_noise_distributionAddNoiseDistributionAddNoiseDistribution — Synthetisches Verrauschen eines Bildes.

Signatur

add_noise_distribution(Image : ImageNoise : Distribution : )

Herror T_add_noise_distribution(const Hobject Image, Hobject* ImageNoise, const Htuple Distribution)

void AddNoiseDistribution(const HObject& Image, HObject* ImageNoise, const HTuple& Distribution)

HImage HImage::AddNoiseDistribution(const HTuple& Distribution) const

static void HOperatorSet.AddNoiseDistribution(HObject image, out HObject imageNoise, HTuple distribution)

HImage HImage.AddNoiseDistribution(HTuple distribution)

Beschreibung

add_noise_distributionadd_noise_distributionAddNoiseDistributionAddNoiseDistributionAddNoiseDistribution Überlagert das Eingabebild (ImageImageImageImageimage) mit Rauschen, das der Verteilung von DistributionDistributionDistributionDistributiondistribution 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 DistributionDistributionDistributionDistributiondistribution 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 ImageNoiseImageNoiseImageNoiseImageNoiseimageNoise 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

Parameter

ImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / int2)

Bild, das verrauscht werden soll.

ImageNoiseImageNoiseImageNoiseImageNoiseimageNoise (output_object)  (multichannel-)image(-array) objectHImageHImageHobject * (byte / int2)

Verrauschtes Bild.

Parameteranzahl: ImageNoise == Image

DistributionDistributionDistributionDistributiondistribution (input_control)  distribution.values-array HTupleHTupleHtuple (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_distributionAddNoiseDistributionAddNoiseDistributionAddNoiseDistribution 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>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

gauss_distributiongauss_distributionGaussDistributionGaussDistributionGaussDistribution, sp_distributionsp_distributionSpDistributionSpDistributionSpDistribution, noise_distribution_meannoise_distribution_meanNoiseDistributionMeanNoiseDistributionMeanNoiseDistributionMean

Alternativen

add_noise_whiteadd_noise_whiteAddNoiseWhiteAddNoiseWhiteAddNoiseWhite

Siehe auch

sp_distributionsp_distributionSpDistributionSpDistributionSpDistribution, gauss_distributiongauss_distributionGaussDistributionGaussDistributionGaussDistribution, noise_distribution_meannoise_distribution_meanNoiseDistributionMeanNoiseDistributionMeanNoiseDistributionMean, add_noise_whiteadd_noise_whiteAddNoiseWhiteAddNoiseWhiteAddNoiseWhite

Modul

Foundation