Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .ci/Brewfile
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ brew 'lua@5.4', link: true, overwrite: true
brew 'libomp', link: true
brew 'ninja'
brew 'onnxruntime'
brew 'opencv'
brew 'openexr'
brew 'openjpeg'
brew 'osm-gps-map'
Expand Down
5 changes: 5 additions & 0 deletions .ci/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,11 @@ RUN rm -rf /var/lib/apt/lists/* && apt-get update && \
liblua5.2-dev \
liblua5.3-dev \
libomp-$LLVM_VER-dev \
libopencv-calib3d-dev \
libopencv-core-dev \
libopencv-features2d-dev \
libopencv-flann-dev \
libopencv-imgproc-dev \
libopenexr-dev \
libopenjp2-7-dev \
libosmgpsmap-1.0-dev \
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,11 @@ jobs:
liblensfun-dev \
liblua5.4-dev \
libonnxruntime-dev \
libopencv-calib3d-dev \
libopencv-core-dev \
libopencv-features2d-dev \
libopencv-flann-dev \
libopencv-imgproc-dev \
libopenexr-dev \
libopenjp2-7-dev \
libosmgpsmap-1.0-dev \
Expand Down Expand Up @@ -269,6 +274,7 @@ jobs:
libxml2:p
lua54:p
omp:p
opencv:p
openexr:p
openjpeg2:p
osm-gps-map:p
Expand Down
6 changes: 6 additions & 0 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ jobs:
liblensfun-bin \
liblensfun-data-v1 \
liblensfun1 \
libopencv-calib3d-dev \
libopencv-core-dev \
libopencv-features2d-dev \
libopencv-flann-dev \
libopencv-imgproc-dev \
libosmgpsmap-1.0-dev \
libpango1.0-dev \
libpng-dev \
Expand Down Expand Up @@ -258,6 +263,7 @@ jobs:
libxml2:p
lua54:p
omp:p
opencv:p
openexr:p
openjpeg2:p
osm-gps-map:p
Expand Down
1 change: 1 addition & 0 deletions DefineOptions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ option(BUILD_NOISE_TOOLS "Build tools for generating noise profiles" OFF)
option(BUILD_CURVE_TOOLS "Build tools for generating base and tone curves" OFF)
option(USE_GMIC "Use G'MIC image processing framework." ON)
option(USE_ICU "Use ICU - International Components for Unicode." ON)
option(USE_OPENCV "Use OpenCV for HDR exposure-bracket auto-alignment." ON)
option(FORCE_COLORED_OUTPUT "Always produce ANSI-colored output (GNU/Clang only)." OFF)
option(USE_SDL2 "Enable SDL2 support" ON)

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,7 @@ Optional dependencies (minimum version):
* libheif 1.13.0 *(for HEIF import & export; also for AVIF import if no libavif)*
* libjxl 0.7.0 *(for JPEG XL import & export)*
* WebP 0.3.0 *(for WebP import & export)*
* OpenCV 4 — only the core, imgproc, features2d, flann and calib3d modules *(for HDR exposure-bracket auto-alignment)*

Optional dependencies (no version requirement):
* colord, Xatom *(for fetching the system display color profile)*
Expand Down
2 changes: 1 addition & 1 deletion build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ CMAKE_OPTIONS_FROM_CMDLINE=""

PRINT_HELP=0

FEATURES="AI CAMERA COLORD GMIC GRAPHICSMAGICK IMAGEMAGICK JXL KWALLET LIBSECRET LUA MAC_INTEGRATION MAP OPENCL OPENEXR OPENMP UNITY WEBP"
FEATURES="AI CAMERA COLORD GMIC GRAPHICSMAGICK IMAGEMAGICK JXL KWALLET LIBSECRET LUA MAC_INTEGRATION MAP OPENCL OPENCV OPENEXR OPENMP UNITY WEBP"

# prepare a lowercase version with a space before and after
# it's very important for parse_feature, has no impact in for loop expansions
Expand Down
50 changes: 50 additions & 0 deletions data/darktableconfig.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
</dttab>
<dttab name="processing" title="processing">
<section name="general" title="image processing"/>
<section name="hdr_alignment" title="HDR alignment"/>
<section name="cpugpu" title="CPU / memory"/>
<section name="opencl" title="OpenCL GPU acceleration"/>
<section name="platform" title="OpenCL drivers"/>
Expand Down Expand Up @@ -384,6 +385,55 @@
<shortdescription>do not set the 'uncategorized' entry for tags</shortdescription>
<longdescription>do not set the 'uncategorized' entry for tags which do not have children</longdescription>
</dtconfig>
<dtconfig prefs="processing" section="hdr_alignment">
<name>plugins/lighttable/hdr_merge_auto_align</name>
<type>bool</type>
<default>true</default>
<shortdescription>auto-align frames when merging HDR brackets</shortdescription>
<longdescription>register and warp exposure brackets onto a reference frame before merging, removing ghosting caused by a shaky tripod or handheld shots.\nonly effective when darktable is built with OpenCV.</longdescription>
</dtconfig>
<dtconfig prefs="processing" section="hdr_alignment">
<name>plugins/lighttable/hdr_merge_auto_reference</name>
<type>bool</type>
<default>false</default>
<shortdescription>pick the HDR alignment reference automatically</shortdescription>
<longdescription>before merging, examine every bracket and align to the one richest in detail instead of the first frame.\nimproves alignment when the first exposure is a poor template, at the cost of one extra decode pass over the frames.\nrequires auto-align and an OpenCV build.</longdescription>
</dtconfig>
<dtconfig prefs="processing" section="hdr_alignment">
<name>plugins/lighttable/hdr_merge_proxy_scale</name>
<type min="0.25" max="1.0">float</type>
<default>0.625</default>
<shortdescription>alignment detail (proxy scale)</shortdescription>
<longdescription>fraction of the full sensor resolution at which feature detection and alignment are computed.\nhigher values find more, more distinctive features (better on repetitive or low-contrast scenes) but cost roughly (scale / 0.5)^2 more time and memory.\n0.5 restores the legacy speed; 0.625 matches the reference prototype.</longdescription>
</dtconfig>
<dtconfig prefs="processing" section="hdr_alignment">
<name>plugins/lighttable/hdr_merge_feature_gamma</name>
<type min="1.0" max="6.0">float</type>
<default>2.2</default>
<shortdescription>shadow lift for feature detection (gamma)</shortdescription>
<longdescription>display-gamma applied to the linear raw before feature detection, to lift shadow detail into the detector's range.\n1.0 disables it. higher values help under-exposed frames but can amplify shadow noise; the percentile stretch already does part of this, so the effect is scene-dependent.</longdescription>
</dtconfig>
<dtconfig prefs="processing" section="hdr_alignment">
<name>plugins/lighttable/hdr_merge_clahe_clip</name>
<type min="0.0" max="16.0">float</type>
<default>0.0</default>
<shortdescription>local contrast for feature detection (CLAHE clip)</shortdescription>
<longdescription>clip limit of the local contrast enhancement (CLAHE) applied before feature detection. 0 disables it.\nenabling it (e.g. 2.0) helps detect features on extremely under-exposed frames, but on repetitive textures (façades, railings, foliage) it can change descriptor signatures between exposures and cause mis-alignment, so it is off by default.</longdescription>
</dtconfig>
<dtconfig prefs="processing" section="hdr_alignment">
<name>plugins/lighttable/hdr_merge_sift_keypoints</name>
<type min="500" max="20000">int</type>
<default>5000</default>
<shortdescription>feature budget per frame (keypoints)</shortdescription>
<longdescription>maximum number of SIFT keypoints kept per frame after spatial balancing, before matching.\nbalancing both frames to a common budget keeps a feature-dense frame from flooding the matcher with ambiguous candidates.</longdescription>
</dtconfig>
<dtconfig prefs="processing" section="hdr_alignment">
<name>plugins/lighttable/hdr_merge_debug_images</name>
<type>bool</type>
<default>false</default>
<shortdescription>save alignment debug images</shortdescription>
<longdescription>write per-frame diagnostic images while merging: the feature-detection input, the detected keypoints and all feature matches (green = inlier, red = outlier).\nsaved as Netpbm (.pgm/.ppm) in a darktable_hdr_align_debug folder in the system temp directory (or the folder named by the DT_HDR_DEBUG_IMAGE_DIR environment variable). for diagnosing alignment problems; off by default.</longdescription>
</dtconfig>
<dtconfig dialog="collect">
<name>plugins/lighttable/tagging/case_sensitivity</name>
<type>
Expand Down
Loading
Loading