de anatomie van een verwerkingsmodule
Het basis element van beeldverwerking in darktable is de verwerkingsmodule. Om een raw beeld te verwerken worden een aantal van deze modules in volgorde uitgevoerd op de afbeelding, waarbij elke module zijn eigen bewerking uitvoert. Voor degenen die bekend zijn met Adobe Photoshop, het concept van een verwerkingsmodule in darktable is vergelijkbaar met een aanpassingslaag in die zin dat beide een stapsgewijze aanpassing van de afbeelding maken, voortbouwend op de eerdere aanpassingen.
Toepassings modules worden ook geleverd door darktable, maar deze zijn niet direct betrokken bij beeldverwerking, maar bieden in plaats daarvan een GUI waarmee u uw afbeeldingen kunt beheren, labelen , exporteren enz.
Elke verwerkingsmodule werkt onafhankelijk van de andere, maar alle modules voeren hun verwerking op een vergelijkbare manier uit:
-
Ontvang de module input van de laatst uitgevoerde module en voer er een operatie op uit om de verwerkte output te produceren. Deze operatie is voor elke verwerkingsmodule anders.
-
Combineer de module input en verwerkte output met behulp van een overvloei operator om de samengevoegde output te produceren. Als er geen vermenging wordt uitgevoerd, is de uitvoer van deze stap hetzelfde als de verwerkte uitvoer.
-
Genereer een masker, dat een dekking definieert voor elke pixel in de afbeelding. De dekking wordt later gebruikt om te bepalen hoe sterk de werking van de module wordt toegepast op elk deel van de afbeelding.
U kunt uw eigen masker definiëren door vormen over de afbeelding te tekenen of door pixeleigenschappen uit de module input of verwerkte output te gebruiken (zie maskers voor details). Dit masker kan verder worden aangepast met een globale dekkingsinstelling, die elke pixel gelijk beïnvloedt.
Als er geen getekend/parametrisch masker wordt gebruikt, is de uitvoer van deze stap een masker waarbij elke pixel dezelfde dekking heeft (afhankelijk van de algemene dekkingsinstelling). Als er geen dekking is gedefinieerd (er wordt geen overvloeiing uitgevoerd), wordt een globale dekking van 1,0 (of 100%) aangenomen.
-
Combineer de module input en overvloeide output pixel voor pixel met behulp van de masker als een overvloeioperator, om de uiteindelijk uitgang te produceren. Waar de maskerdekking 100% bedraagt, is de uiteindelijk uitgang de overvloeide output voor die pixel. Waar de maskerdekking 0 bedraagt, is de uiteindelijke uitvoer de module-invoer voor die pixel. Een tussenliggende dekking combineert de overvloeide output en module input proportioneel. De uiteindelijk uitgang wordt doorgegeven aan de volgende module voor verdere verwerking.
Stap 2 en 3 zijn optioneel en worden niet door alle modules ondersteund. De module demozaïek moet bijvoorbeeld worden toegepast op het gehele raw bestand om een leesbare afbeelding te produceren en heeft geen zin om de uitvoer ervan te maskeren of te overvloeien.
Elk van de bovenstaande stappen wordt in de volgende secties in meer detail beschreven.