Skip to content

Latest commit

 

History

History
82 lines (64 loc) · 3.25 KB

readme.md

File metadata and controls

82 lines (64 loc) · 3.25 KB

align: image alignment

this module is an implementation of Johannes Hanika, Lorenzo Tessari, and Carsten Dachsbacher, Fast temporal reprojection without motion vectors, Journal of Computer Graphics Techniques, 2021. it can be useful to align consecutive frames in real-time renders, as well as to stack hand-held short exposure photography for low-light or hdr.

please note that it only aligns images of same exposure, since it directly compares pixel values by difference. in particular it cannot be used to merge exposure bracketing stacks at this point. take several underexposed images at the same exposure level instead.

connectors

  • alignsrc a feature map of the to-be-aligned image
  • aligndst a feature map to be aligned to (these will stay static)
  • input the input image pixels which will be warped
  • output the warped output image
  • mask the error mask (output)
  • visn a debug visualisation of the motion vectors for display
  • mv the 2d motion vectors (as input to other modules)

plus debug channels

parameters

the parameters are as described in the paper.

  • merge_k increase this to give the error mask more weight (i.e. reduce potential misalignment artifacts)
  • merge_n increase this to instruct the error mask that small errors are likely noise and can be ignored
  • blur0 these blur parameters control the size of the feature detection context (patch size) on different scales. 0 is the finest and 3 the coarsest.
  • blur1
  • blur2
  • blur3
  • sub if the image is not raw, determines the subsampling block size side length. bayer will always use 2x2 and xtrans 3x3.

examples

noisy input vs. aligned and denoised:

<textarea readonly style="background-image:url(img_0000.jpg)"></textarea> <textarea readonly style="background-image:url(img_0003.jpg)"></textarea>

denoise pre-demosaic without alignment:

<textarea readonly style="background-image:url(img_0001.jpg)"></textarea> <textarea readonly style="background-image:url(img_0003.jpg)"></textarea>

denoise post-demosaic without alignment:

<textarea readonly style="background-image:url(img_0002.jpg)"></textarea> <textarea readonly style="background-image:url(img_0003.jpg)"></textarea>

align and denoise post-demosaic:

<textarea readonly style="background-image:url(img_0004.jpg)"></textarea> <textarea readonly style="background-image:url(img_0003.jpg)"></textarea>

denoise individual inputs and align then:

<textarea readonly style="background-image:url(img_0005.jpg)"></textarea> <textarea readonly style="background-image:url(img_0003.jpg)"></textarea>

denoise individual inputs and align then vs. single-image pre-demosaic denoise:

<textarea readonly style="background-image:url(img_0001.jpg)"></textarea> <textarea readonly style="background-image:url(img_0005.jpg)"></textarea>

align and denoise post-demosaic vs. single-image post-demosaic denoise:

<textarea readonly style="background-image:url(img_0002.jpg)"></textarea> <textarea readonly style="background-image:url(img_0004.jpg)"></textarea>