Skip to content

Latest commit

 

History

History
337 lines (246 loc) · 8.32 KB

README.md

File metadata and controls

337 lines (246 loc) · 8.32 KB

UnRAWer

Small GUI utility to Batch process Camera RAW images with OpenColorIO 3D Lut support. A tool designed as a helper tool for photogrammetry (3D scanning) image batch processing tool where speed is more important than feature-rich raw image processors.

UnRAWer2

Core features

  • Support all camera raws supported in Libraw library, including ProRAW DNG
  • Headless (CLI) mode
  • Multithreaded and asynchronous batch processing
  • Drag and drop interface with recursive subfolders support
  • Half Resolution camera raws import
  • Export as raw sensor data (bw), Bayers pattern (RGB), and different demosaic methods (supported in libraw)
  • Smart (per folder_suffix/filename_suffix) 3D Lut grading presets (via OpenColorIO)
  • Smart per-camera (Make, Model) LUT
  • Export as 8/16/32bit int/float tiff/jpeg/jpeg2000/jpegxl/heic/PPM/PNG
  • Export Exif and XMP metatags (only subset)
  • tool configuration via TOML config file

UnRAWer

Limitations

Cropping RAWs is not guaranteed to be identical to commercial raw processors' crops.

User Manual

Settings are available through *.toml config file and UI menu

Global

Global app settings

Console = true/false

Threads count for read and write

Choose these settings depending on your CPU, memory, and IO specs

Threads = 10

Threads multiplier for processing 1.0 equals all cores/threads

(TODO: check if still used)

ThredsMult = 1.0

Export into subfolders

If set to true, processed images will be stored in the lut_name folder. Otherwise, lut_name will be added as a suffix (aka. filename_lut_name.ext)

ExportSubf = true

Global subfolders prefix

relative path prefix. For example, "../Proc" will create a folder Proc in a parent folder to a camera raw images source folder.

PathPrefix = ""

log level is 0-5, 0 is most verbose

0 = trace, 1 = debug, 2 = info, 3 = warning, 4 = error, 5 = fatal

  • 0 = only fatal errors,
  • 1 = error,
  • 2 = warning,
  • 3 = info (default),
  • 4 = debug,
  • 5 = trace (most outputs)

Verbosity = 3

Range

Range conversion mode

(TODO: check if still needed; this part of code from Solidify)

  • 0 - Unsigned 0.0 ~ 1.0
  • 1 - Signed -1.0 ~ 1.0
  • 2 - Signed to Unsigned -1.01.0 -> 0.01.0
  • 3 - Unsigned to Signed 0.01.0 -> -1.01.0

RangeMode = 0

Export

Export settings

FileFormat:

  • -1 - Same as input. If the input format can't be used for export (for example, CameraRAWs) app will use the default
  • 0 - TIFF
  • 1 - OpenEXR
  • 2 - PNG
  • 3 - JPEG
  • 4 - JPEG-2000
  • 5 - JPEG XL
  • 6 - HEIC
  • 7 - PPM

DefaultFormat = 3 FileFormat = -1

Bit depth:

  • -1 - Original
  • 0 - uint8 (8bit unsigned int)
  • 1 - uint16 (16bit unsigned int)
  • 2 - uint32 (64bit unsigned int) !! most file formats do not support 32bit unsigned int
  • 3 - uint64 (64bit unsigned int) !! most file formats do not support double-precision
  • 4 - half (16bit float)
  • 5 - float (32bit float)
  • 6 - double (64-bit float) !! Most file formats do not support double-precision

DefaultBit = 4 BitDepth = -1

Quality

  • 100 - lossless or best quality
  • 0 - worst quality

Quality = 95

CameraRaw

Raw rotation:

  • -1 - Auto EXIF
  • 0 - Unrotated/Horizontal
  • 3 - 180 Horizontal
  • 5 - 90 CW Vertical
  • 6 - 90 CCW Vertical

RawRotation = -1

Raw Color Space

(TODO: Check if this is an actual color conversion in LibRAW or just a tagging)

  • 0 - raw
  • 1 - sRGB
  • 2 - sRGB-linear (sRGB primaries, but a linear transfer function)
  • 3 - Adobe
  • 4 - Wide
  • 5 - ProPhoto
  • 6 - ProPhoto-linear
  • 7 - XYZ
  • 8 - ACES (only supported by LibRaw >= 0.18)
  • 9 - DCI-P3 (LibRaw >= 0.21)
  • 10 - Rec2020 (LibRaw >= 0.2)

RawColorSpace = 1

Demosaic

  • -2 - raw data (Single channel)
  • -1 - no demosaic (RGB)
  • 0 - linear
  • 1 - VNG
  • 2 - PPG
  • 3 - AHD (default)
  • 4 - DCB
  • 5 ~ 10 is not used
  • 11 - DHT
  • 12 - AAHD (Modified AHD)

Demosaic = 3

Import Camera RAW in half-resolution

half_size = false

use_auto_wb

Use automatic white balance obtained after averaging over the entire image.

use_auto_wb = false

use_camera_wb

If possible, use the white balance from the camera.

use_camera_wb = true

use_camera_matrix

  • 0: do not use an embedded color profile
  • 1 (default): use embedded color profile (if present) for DNG files (always); for other files only if use_camera_wb is set; -# 3: use embedded color data (if present) regardless of the white balance setting.

use_camera_matrix = 1

highlight

0-9: Highlight mode (0=clip, 1=unclip, 2=blend, 3+=rebuild).

highlights = 3

aberrations

Correction of chromatic aberrations (red multiplier, blue multiplier)

aberrations = 1.0, 1.0

Denoise before debayering.

It is not recommended to use both wavelet denoising and FBDD noise reduction!

  • 0 - disabled
  • 1 - wavelength
  • 2 - fbdd
  • 3 - both

denoise_mode = 1

threshold

Use wavelets to erase noise while preserving real detail. The best threshold should be somewhere between 100 and 1000.

dnz_threshold = 100.0

fbdd_noiserd

Controls FBDD noise reduction before demosaic.

  • 0 - do not use FBDD noise reduction
  • 1 - light FBDD reduction
  • 2 (and more) - full FBDD reduction

fbdd_noiserd = 2

Exif crop

At this moment, both auto and force work the same. TODO: merge them into the one

  • -1 - disabled
  • 0 - auto
  • 1 - force

exif_crop = 0

OCIO settings

OCIO config file: If empty, the OpenColorIO library will use the $OCIO environment variable

If $OCIO is not set, app will give an error

OCIO_Config = "aces_1.2/config.ocio"

Transform image (color transform)

Luts folder, absolute or relative to a program folder. UnRAWer automatically loads the list of LUTs in this folder in load time. Use a console to check if LUTs are correctly recognized. No LUT checking load time!! (TODO: check if non-default handle correctly)

LutFolder = "LUTs"

LUT transform mode

LUT mode. If set to Smart check if path or image file name have included lut preset name. For example, several folders with raw files: diffuse, cross, parallel, and you have dedicated LUT presets for such images. UnRAWer should automatically recognize and use a dedicated LUT preset.

  • -1 - disabled
  • 0 - Smart (file path/name)
  • 1 - Force

LutTransform = 1

Force/Default preset

LutDefault = "hdr"

Per camera model presets

exif_lut = false

Unsharp

Unsharp mask

Unsharp mode:

  • -1 - disabled
  • 0 - smart
  • 1 - Force

sharp_mode = 1

Unsharp kernel

  • 0 - gaussian (default)
  • 1 - sharp-gaussian
  • 2 - box
  • 3- triangle
  • 4 - blackman-harris
  • 5 - mitchell
  • 6 - b-spline
  • 7 - catmull-rom
  • 8 - lanczos3
  • 9 - disk
  • 10 - binomial
  • 11 - laplacian
  • 12 - median

sharp_kernel = 0

sharp window size sharp_width = 3.0 sharp strength sharp_contrast = 0.5 threshold sharp_treshold = 0.125

source + contrast * (source - blur) if (source - blur) < threshold => result == source (no sharp)

Headless (CLI)

Process single RAW file from CLI using default config file settings (less efficient way to use CLI)

UnRAWer.exe path_to_file.ext

Process a folder with raw files from CLI using default config file settings.

UnRAWer.exe path_to_folder

Process multiply folders with raw files from CLI using default config file settings and more silent verbosity

UnRAWer.exe -v=1 path_to_folder1 path_to_folder2

Process multiply inputs (folders and files) with raw files from CLI using default config file settings and more verbosity

UnRAWer.exe -v=4 path_to_folder1 path_to_folder2 path_to_file1.ext path_to_file2.ext path_to_file3.ext

Process multiply inputs (folders and lists) with raw files from CLI using custom config file settings and more verbosity

UnRAWer.exe -v=4 path_to_config.toml path_to_folder1 path_to_file_list.txt

Required dependencies

  • OpenImageIO
  • LibRAW
  • OpenImageIO
  • libTIFF
  • OpenJpeg (jpeg2000)
  • libJpeg-turbo (jpeg)
  • libjxl (jpeg xl)
  • zlib-ng
  • QT6
  • etc.

UnRAWer3

Support

Please consider supporting this project via https://www.patreon.com/MadProcessor

License

Copyright © 2021-2024 Erium Vladlen.

UnRAWer is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.