wavelets

Wavelets worden gebruikt om een afbeelding te scheiden (of te ontbinden) in een aantal verschillende lagen, die elk een ander detailniveau bevatten. Na het op deze manier ontleden van een afbeelding, kan een module de verwerking ervan beperken tot een of meer van deze detaillagen, en vervolgens de lagen aan het einde weer samenvoegen om de uitvoer te vormen. Dit stelt ons in staat om chirurgisch te zijn over welke kenmerken in het beeld we willen beïnvloeden bij het werken met een module.

Enkele van de bewerkingen die darktable op deze manier kan uitvoeren zijn:

🔗theorie

Een wavelet is een oscillerende wiskundige functie die begint en eindigt bij nul. De volgende diagram toont enkele eenvoudige wavelets van verschillende grootte.

wavelets-overzicht

Deze wavelet-functies worden gebruikt om een afbeelding te scannen en te ontleden met behulp van een wiskundige bewerking genaamd convolutie. Dit pikt details uit de afbeelding op die een vergelijkbare schaal hebben als de grootte van een gegeven wavelet, en bouwt een aantal van deze detaillagen op, die elk overeenkomen met een andere wavelet-schaal.

Het volgende is een voorbeeld waarbij detaillagen zijn geëxtraheerd uit de bovenstaande afbeelding. In dit geval werden de afbeeldingen geproduceerd met behulp van de retoucheren module, waarbij de afbeelding werd opgesplitst in 8 verschillende lagen en met behulp van de “scherm wavelet schaal” knop van de module, om elke detaillaag te visualiseren:

wavelets-retouchering-gui

De balken in de sectie wavelet ontbinding geven de lagen aan die zijn geëxtraheerd op verschillende wavelet-schalen. De donkerste rechthoek aan de linkerkant vertegenwoordigt de hele afbeelding (vóór ontbinding) en de grijze vakken vertegenwoordigen elk een van de ontlede lagen. Als u op het trappictogram onder de staafdiagram klikt, wordt de laagvisualisatie-overlay ingeschakeld, zodat u kunt zien hoe de momenteel geselecteerde laag eruitziet.

Laten we eens kijken naar enkele van de lagen die voor de bovenstaande afbeelding zijn gegenereerd.

Op schaal #2 bevat de afbeelding alleen zeer fijne details, waaronder de wenkbrauwen, wimpers en de poriën van de huid. Het bevat niet de grovere details van de afbeelding, omdat die details zijn geëxtraheerd naar andere lagen:

wavelets-laag-schaal-2

Op schalen #5 en #6 beginnen we steeds grotere kenmerken te zien:

wavelets-laag-schaal-5

wavelets-laag-schaal-6

Op schaal #8 zien we alleen kenmerken van zeer hoog niveau, zoals de algemene vorm van de neus, het oog en de wang van het model:

wavelets-laag-schaal-8

🔗waarom wavelets gebruiken?

Stel dat we in het bovenstaande voorbeeld een deel van de vlekkerigheid in de huid van het model willen gladstrijken, zonder iets van de onderliggende kleinschalige textuur te verliezen. Wavelet-ontbinding maakt hiervan een triviale bewerking - we kunnen eenvoudig de retoucheermodule gebruiken om een Gaussiaanse vervaging toe te passen op alleen de ‘vlekkerige’ detaillaag(en), waarbij alle andere lagen onaangeroerd blijven. Zodra de aanpassing is voltooid, combineert de retoucheermodule eenvoudig de aangepaste laag met de resterende onaangeroerde lagen om de uiteindelijke afbeelding te produceren.

De reeks afbeeldingen hieronder toont (1) De originele afbeelding; (2) De laag (schaal 5) die we willen vervagen; en (3) het uiteindelijke beeld nadat de schaal 5-laag is vervaagd en de lagen opnieuw zijn gecombineerd:

wavelets-origineel

wavelets-laag-schaal-5

wavelets-vaag-gelaagd

Zoals je kunt zien, zijn de grootschalige huidvlekken verwijderd, maar de kleinschalige details blijven onaangeroerd.

🔗interageren met wavelet-schalen

Er zijn twee methoden waarmee verwerkingsmodules jou in staat stelt hun werking te wijzigen met behulp van wavelet-schalen.

🔗wavelet ontbinding

Zoals hierboven besproken, kunt u met de retoucheer-module kiezen in hoeveel detailniveaus u uw afbeelding wilt splitsen. Het ontleedt de afbeelding in afzonderlijke lagen en stelt u in staat selectief bewerkingen uit te voeren op elke afzonderlijke laag of op de afbeelding als geheel:

wavelets-retouchering-gui

Zie de documentatie retoucheer module voor meer details.

🔗spline instellingen

De ruisreductie (profiel), raw ruisreductie en contrast equalizer modules laten hun effecten min of meer op elke wavelet-schaal toepassen met splines.

spline

Hier vertegenwoordigt elk knooppunt in de grafiek een ander detailniveau in de afbeelding, van grove details aan de linkerkant tot fijne details aan de rechterkant. U kunt elk van deze knooppunten met uw muis verhogen of verlagen om respectievelijk het effect van de module op die wavelet-schaal te vergroten of te verkleinen.

Om de curve te wijzigen, klikt u iets boven of onder de lijn in de buurt van een knooppunt en sleept u omhoog of omlaag. U kunt de breedte van uw aanpassing wijzigen door met uw muiswiel te scrollen, waardoor de cirkel die onder uw muisaanwijzer wordt weergegeven groter of kleiner wordt. Een kleine cirkel geeft aan dat het effect van het omhoog of omlaag slepen van de curve voornamelijk wordt geïsoleerd voor het knooppunt dat wordt aangepast. Een grotere cirkel geeft aan dat het effect breder zal zijn en in toenemende mate aangrenzende knooppunten zal raken. Wanneer u met uw muis over de grafiek beweegt, geven gearceerde gebieden de delen van de spline aan die worden beïnvloed wanneer u probeert de curve te wijzigen.

translations