Wavelets are used to separate (or decompose) an image into a number of distinct layers, each containing a different level of detail. After decomposing an image in this way, a module can limit its processing to one or more of these detail layers, and then piece the layers back together again at the end to form its output. This allows us to be surgical about which features in the image we wish to impact when working with a module.

Algumas das operações que o Ansel pode realizar desta forma são:

teoria

Uma wavelet é uma função matemática oscilante que inicia e termina em zero. O diagrama a seguir mostra algumas wavelets simples de diferentes tamanhos.

image

Estas funções de wavelet são usadas para escanear e decompor uma imagem usando uma operação matemática chamada convolução. Isto seleciona detalhes da imagem que estão em uma escala similar ao tamanho da wavelet fornecida e constrói várias camadas de detalhes, cada uma correspondendo a uma escala de wavelet diferente.

The following is an example where detail layers have been extracted from the above image. In this case, the images were produced using the retouch module, splitting the image into 8 different layers, and using the module’s “display wavelet scale” button to visualise each of the detail layers:

image

The bars in the wavelet decompose section indicate the layers that have been extracted at different wavelet scales. The darkest rectangle at the left represents the entire image (before decomposition) and the gray boxes each represent one of the decomposed layers. Clicking on the staircase icon below the bar graph enables the layer visualisation overlay so that you can see what the currently selected layer looks like.

Vamos dar uma olhada em algumas das camadas geradas para a imagem acima.

Na escala #2, a imagem contém somente detalhes muito finos, incluindo as sobrancelhas do modelo, cílios dos olhos e poros de sua pele. Isto não inclui detalhes mais gerais da imagem, porque esses detalhes foram extraídos para outras camadas:

image

Nas escalas #5 e #6, começamos a ver características cada vez maiores:

image

image

Na escala #8 vemos somente características mais amplas, como a forma geral do nariz, os olhos e as bochechas do modelo:

image

porque usar wavelets?

Suponha, no exemplo acima, que queiramos suavizar algumas manchas na pele do modelo, sem perder nada da textura subjacente em pequena escala. A decomposição wavelet torna esta operação trivial: simplesmente podemos usar o módulo de retoque para aplicar um desfoque gaussiano somente nas camadas de detalhe ‘manchadas’, deixando as demais camadas intactas. Uma vez que o ajuste esteja completo, o módulo de retoque recombina a camada ajustada com as restantes não alteradas para produzir a imagem final.

A sequência de imagens abaixo mostra (1) A imagem original; (2) a camada (escala 5) que desejamos suavizar; e (3) A imagem final após a escala 5 ter sido suavizada e as camadas recombinadas:

image

image

image

Como pode ver, as manchas na pele foram em grande parte eliminadas, mas os detalhes em pequena escala permanecem intactos.

interagir com escalas wavelet

Existem dois métodos pelos quais os módulos de processamento permitem que você modifique suas operações usando escalas wavelet.

decomposição em wavelet

Como mencionado acima, o módulo retocar permite que você selecione em quantos níveis de detalhes sua imagem será dividida. Ele decompõe a imagem em camadas separadas e permite que você realize operações seletivamente em cada camada individual ou na imagem como um todo:

image

See the retouch module documentation for more details.

controles com curvas-S

The denoise (profiled), raw denoise and contrast equalizer modules allow their effects to be applied more or less to each wavelet scale using splines.

image

Here, each node in the graph represents a different level of detail in the image, from coarse detail on the left to fine detail on the right. You can raise or lower each of these nodes with your mouse to increase or decrease the module’s effect, respectively, on that wavelet scale.

Para modificar a curva, clique ligeiramente acima ou abaixo da linha próximo a um nó para arrastá-lo para cima ou para baixo. Você pode mudar a amplitude da sua modificação girando a roda do mouse, que aumentará ou reduzirá o tamanho do círculo exibido sob o ponteiro do mouse. Um círculo pequeno indica que o efeito de arrastar a curva para cima ou para baixo será mais restrito ao nó que estiver sendo ajustado. Um círculo maior indica que o efeito será mais amplo e aumentará o impacto no nós adjacentes. Quando você passa o mouse sobre o gráfico, áreas sombreadas indicam as partes da curva-S que serão impactadas quando você tentar modificar a curva.