uncalibrated_photometric_stereoT_uncalibrated_photometric_stereoUncalibratedPhotometricStereoUncalibratedPhotometricStereo (Operator)

Name

uncalibrated_photometric_stereoT_uncalibrated_photometric_stereoUncalibratedPhotometricStereoUncalibratedPhotometricStereo — Rekonstruieren einer Oberfläche von mehreren, unterschiedlich beleuchteten Bildern.

Signatur

uncalibrated_photometric_stereo(Images : NormalField, Gradient, Albedo : ResultType : )

Herror T_uncalibrated_photometric_stereo(const Hobject Images, Hobject* NormalField, Hobject* Gradient, Hobject* Albedo, const Htuple ResultType)

void UncalibratedPhotometricStereo(const HObject& Images, HObject* NormalField, HObject* Gradient, HObject* Albedo, const HTuple& ResultType)

HImage HImage::UncalibratedPhotometricStereo(HImage* Gradient, HImage* Albedo, const HTuple& ResultType) const

static void HOperatorSet.UncalibratedPhotometricStereo(HObject images, out HObject normalField, out HObject gradient, out HObject albedo, HTuple resultType)

HImage HImage.UncalibratedPhotometricStereo(out HImage gradient, out HImage albedo, HTuple resultType)

Beschreibung

Der Operator uncalibrated_photometric_stereouncalibrated_photometric_stereoUncalibratedPhotometricStereoUncalibratedPhotometricStereoUncalibratedPhotometricStereo liefert ein NormalFieldNormalFieldNormalFieldNormalFieldnormalField für die übergebenen Bilder, sowie die Gradienten pro Pixel und das AlbedoAlbedoAlbedoAlbedoalbedo des Objekts. Der Operator kann dazu verwendet werden, um feine Oberflächenstrukturen eines Objekts ohne Vorwissen über die jeweilige Beleuchtungsrichtung während der Aufnahme, die Geometrie oder die Reflektionseigenschaften des Objekts sichtbar zu rekonstruieren. Dieser Operator ist ähnlich zu photometric_stereophotometric_stereoPhotometricStereoPhotometricStereoPhotometricStereo, benötigt jedoch keine kalibrierten Lichtrichtungen. Diese werden durch das Verfahren implizit bestimmt.

Das Verfahren geht von einer orthographischen Projektion aus. Unter dieser Annahme kann die pixelweise lokale Ausrichtung eines Objekts bis auf eine sog. Generalized Bas-Relief (GBR) Unbestimmtheit rekonstruiert werden. Dies geschieht über eine Singulärwertzerlegung einer Bildmatrix, deren Spalten jeweils die Intensitäten eines beleuchteten Bilds enthält.

Der Operator benötigt mindestens drei unterschiedlich beleuchtete Bilder eines Objekts, welches mit einer statischen Kamera aufgenommen wurde. Die besten Resultate werden erzielt, wenn das Objekt sog. Lambert'sche Reflektionseigenschaften und kein Schattierungen aufweist.

Ausführungsinformationen

Parameter

ImagesImagesImagesImagesimages (input_object)  singlechannelimage(-array) objectHImageHImageHobject (byte / uint2)

Eingabebilder.

NormalFieldNormalFieldNormalFieldNormalFieldnormalField (output_object)  image(-array) objectHImageHImageHobject * (real)

Oberflächennormalen pro Pixel.

GradientGradientGradientGradientgradient (output_object)  image objectHImageHImageHobject * (vector_field)

Gradienten in x,y Richtung.

AlbedoAlbedoAlbedoAlbedoalbedo (output_object)  image objectHImageHImageHobject * (real)

Anteil der Strahlung, der von der Oberfläche reflektiert wird.

ResultTypeResultTypeResultTypeResultTyperesultType (input_control)  string-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Zu berechnende ikonische Ergebnisse.

Defaultwert: 'all' "all" "all" "all" "all"

Werteliste: [], 'albedo'"albedo""albedo""albedo""albedo", 'all'"all""all""all""all", 'gradient'"gradient""gradient""gradient""gradient", 'normal_field'"normal_field""normal_field""normal_field""normal_field", 'normalized_gradient'"normalized_gradient""normalized_gradient""normalized_gradient""normalized_gradient"

Beispiel (HDevelop)

* read severally illuminated images
FName := 'photometric_stereo/pharma_braille_0' + [1:4] + '.png'
read_image(Images, FName)
* extract surface normals, gradients and albedo from images
uncalibrated_photometric_stereo(Images, NormalField, Gradient, Albedo, 'all')
derivate_vector_field (Gradient, Result, 0.1, 'mean_curvature')
reconstruct_height_field_from_gradient (Gradient, HeightField, 'poisson', [], [])

Ergebnis

Sind die Parameterwerte korrekt, dann liefert uncalibrated_photometric_stereouncalibrated_photometric_stereoUncalibratedPhotometricStereoUncalibratedPhotometricStereoUncalibratedPhotometricStereo den Wert 2 (H_MSG_TRUE), sonst eine Fehlermeldung.

Alternativen

photometric_stereophotometric_stereoPhotometricStereoPhotometricStereoPhotometricStereo

Siehe auch

photometric_stereophotometric_stereoPhotometricStereoPhotometricStereoPhotometricStereo

Modul

3D Metrology