de anatomie van een verwerkingsmodule
Het basiselement van beeldverwerking in darktable is de verwerkingsmodule. Om een onbewerkt beeld te verwerken, werken een aantal van dergelijke modules achtereenvolgens op het invoerbeeld, waarbij elk een andere bewerking op de beeldgegevens uitvoert. Voor degenen die bekend zijn met Adobe Photoshop, het concept van een verwerkingsmodule in darktable is analoog aan dat van een aanpassingslaag in die zin dat beide een stapsgewijze aanpassing van de afbeelding maken, voortbouwend op de eerdere aanpassingen.
nuts-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, taggen , exporteer ze 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 blended 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 finale output te produceren. Waar de maskerdekking 100% bedraagt, is de finale output 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 finale output wordt doorgegeven aan de volgende module voor verdere verwerking.
Stap 2 en 3 zijn optioneel en worden niet door alle modules ondersteund. De module demosaic moet bijvoorbeeld worden toegepast op het gehele onbewerkte bestand om een leesbare afbeelding te zin om de uitvoer ervan te maskeren of te overvloeien.
Elk van de bovenstaande stappen wordt in de volgende secties in meer detail gedefinieerd.