5215 Commits

Author SHA1 Message Date
Desmis
a578423378
Abstract Profile - Contrast enhancement -- Selective Editing Cam16 and JzCzHz - improvments (#7111)
* Init levels trc GUI

* Levels TRC

* Complete with gamma based attenuation

* Limit RGB channel Slope with checkbox

* Improve GUI and code channel TRC

* Change default values - compexity levels RGB channels

* Relative gamma mode RGB channel TRC

* Change label and ponderation rolloff

* Change rolloff level

* Threshold attenuation

* Threshold attenuation 2 part

* GUI Link R G B

* Linked RGB with Green slope - RGB channels

* Set Freeman TM functions with ImProcFunctions

* First GUI Abstract profile highlight attenuation

* GUI AP part 2

* Restore olg GUI AP

* Expander AP primaries adn illuminant

* Disable RGB channel TRC

* Expander contrast AP

* Slider attenuation response

* Save work GUI local contrast

* Save GUI part 2 AP curve

* Local contrast GUI Abstract Profile

* Move Abstract profile in toolpanel and ICMpanel

* rtengine variable contrast

* Variable contrast 2

* Variable contrast engine 3

* Variable contrast engine 4

* Variable contrast engine

* Detail levels pyramid

* Engine residual contrast

* Residual contrast

* Change settings detail levels

* Expander refinement - new tooltips - low resid contrast

* Change contrast profile and labels

* Remove warning message GUI Gtk

* Gamutcontrol code - disabled

* Improve with calceffect

* Other improvement variable contrast

* Offset variable contrast

* Range offset - comment code

* Parametric inva fot lut

* Clean cmakelist.txt

* Change contrast profiles

* Comment code ipwavelet

* Added orthogonal Daubechies scaling D20

* Change strenght curve - tooltip Daubechies

* Forgotten changes

* Comment code

* Move variable in process - take into account highlight attenuation

* Display label maximum preview and preset selection

* Remove console message

* harmonize levels wavelets iplocallab

* Tooltips contrast enhancement

* Change tooltip Contrast profile

* Chnage tooltip Contrast

* Message warning preview size

* Change gamma TRC values in GUI

* Remove itanium architecture support for windows as PR 7105

* Change windows.yml and appimage.yml

* Windows.yml apseimprov

* Clean and comment ipwavelet

* Clean comment icmpanel.cc

* Harmonize local contrast wavelet Selective editing with Abstract profile

* Harmonize with AP - offset

* vanishing moment D20 - Selective editing wavelet

* Offset only in advanced mode

* GUI expander contrast enable and pyrwavtrc

* Clean and comment code

* merge with dev

* Prepare sigmoid based

* Contrast sigmoid GUI

* Skew sigmoid GUI

* Sigmoid tone mapper in iplocallab

* Change GUI settings

* White-point and black-point auto

* Change EvDCP to ALLNORAW as others events DCP

* Change default skew

* Change settings - enable scale Yb

* Display white point - advanced mode

* Improve GUI

* Clean unused variable

* new sigmoid Q in cam16

* Change tooltips and default sigmoid Q settings

* Sigmoid Jz

* Clean code Jz and sigmoid

* Harmonize Sigmoid Q and Sigmoid RGB

* Harmonize Sigmoid Jz

* Clean code

* Improve labels wit cd/m2

* Slope base Q methode first

* GUI slope based Q

* Change default settings and tooltips

* Change tooltips

* Clean code - change default setting

* Change default local contrast & wavelet to wavelet & basic mode

* Fixed bad assignation slopesmoq

* Improve sigmoid and slope based Q - GUI for Log encoding Color appearance

* Remove wrong change

* various small improvments

* Allows black and white AP and SDA in basic mode

* Change  the writing of wGamma and wSlope - attenuates the effect of the first 2 AP contrast profiles

* Clean code wgamma wslope

* Set curve Cam16 in basic mode

* Change position curve in GUI cam16

* Enable tonecurve1 in colorappearance & lighting in standard mode

* Fixed bug scale yb scene - ciecam curve - change default contrast enhancement

* not reset curve shape ciecam in strandard

* Change label Tone mapping operators and tooltips

* Change some labels and tooltips - Appearance - Mask and Mofifications - Recovery Based On Luminance Mask

* Forgotten changes

* Clean locallabtools2.cc

* Maxlevel wavelet minimum to 5

* Reset mask and modifications in SE wavelet and all tools in Global

* Show modified areas SE wavelet

* Tooltip show wavelets decomposition

* Fixed another bad behavior in Global - changes also in color & light for merge file

* Change behavior fullimage - global as in PR GHS

* Disable all mask and modifications in Global but remain active in fullimage and normal

* Set expander expanded = true

* Chane contrast enhancement coef

* Replace VBox trcWavVBox by ToolParamBlock trcWavFBox

* Forgotten code in icmpanel read pedited opacityShapeWLI - hope solve batch mode

* Change RGB Slope behavior with link

* No access to last level contrast enhancement

* Move Abstract Profile tooltip to title

The tooltip was popping up when the cursor was over almost any part of
the tool which was inconvenient. Now, the tooltip only appears when
hovering over the title.

* Improve Color Management expanders behavior

By default, collapse Abstract Profile and leave it's sub-expanders
expanded.

Keep the expanded state of all the sub-expanders during the editing
session.

Fix the right-click behavior. The clicked expander should be expanded
and all siblings, if any, should be collapsed.

* Fix RGB slope tone mapping RGB linkage

Synchronize the red, green, and blue values before updating the preview
to avoid using incorrect values to generate the preview.

* Fix SE CAM tone mapping slider defocus

Avoid unnecessarily hiding then showing the adjusters in tone mapping so
that focus is not lost while adjusting the adjusters.

* Delete history kslopesmo - remove IcmOpacityCurveWL

* change the tooltips as suggested by Lawrence

* Review L37 - change strengthjz strengthlc - MIDDLE_GREY MIDDLE_GREYjz - artifacts ciecam

* Change name Tone map freeman functions

* Remove gamutcont - rename localcont - change allocation memory wdspot

* Clean procparams

* remove sigmoidsenscie - logcieq

* Added * to three labels 'sigmoid' - change tooltip which shows the incompatibility with 5.11

* Forgotten correction suggested by Lawrence

* Compatibility 5.11 log encoding - sigmoid part 1

* Compatibility 5.11 part 2

* Compatibility 5.11 - step 3

* Compatibility 5.11 - step 4

* Compatibility 5.11 step xx

* Compatibility 5.11 - combobox operators Q and J

* Compatibility 5.11 Cam16 GUI first part

* Improve GUI Cam16 sigmoid compatibility

* Compatibility 5.11 Jz - sigmoid - step 1

* Compatibility 5.11 Jz gui step 2

* Compatibility 5.11 Jz GUI step x

* Compatibility 5.11 Jz - history - etc.

* Various change labels - history ...

* Improve GUI - hide show 5.11 5.12

* Jz 5.11 in iplocallab - step 1

* Compatibility 5.11 iplocallab cam16 step 1

* Improve GUI hide show 511 512

* Solved - I hope - GUI problem with tone mapper Q and J 5.11 and 5.12

* Compatibility 5.11 iplocallab Cam16 step 2

* Improve GUI compatibility 5.11 labels tooltips

* Small improvments GUI - labels - history...

* Fixed typo in paramsedited.cc clcurve issue 7283

* Change tooltips method 5.12 - 5.11 for cam16 and Jz  brightness Q or J

* Clean and refine code

* Various change dafult language  and CAM16 CAM02 replace by Cam16 Cam02

* Change modeQJ method for 5.11 in function ppversion

* Change labels as suggested by Wayne PR 7111

* Others changes suggested for label

* Change tooltips as suggested in PR

* Use unique pointer instead of manual management

* Update rtdata/languages/default

Co-authored-by: Lawrence37 <45837045+Lawrence37@users.noreply.github.com>

* Change all Cam16 references to CAM16

* Change convention uppercase and lowercase in frame - checkbox

* Improve tooltips for Tone Mapping Operators

* Another change CIECAM and uppercase lowercase in checkbox

* Remove appimage and windows yml

---------

Co-authored-by: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com>
2025-01-19 07:52:32 +01:00
Lawrence37
70a4309bd5
Merge pull request #7264 from Lawrence37/demosaiced-float-dng
Demosaiced floating point DNGs
2025-01-16 22:20:53 -08:00
Lawrence37
d6059979d5
Merge pull request #7259 from Lawrence37/raw-dehaze-bad-pixels
Raw dehaze negative values fix
2025-01-16 22:20:40 -08:00
Lawrence37
ccce1530b4
Merge pull request #7245 from Lawrence37/camconst-separation
Separation of camconst files
2025-01-01 15:57:37 -08:00
Lawrence37
98752a2433
Merge pull request #7257 from Beep6581/fix-warnings-5.12
Compiler warning fixes
2024-12-26 22:26:11 -08:00
Lawrence37
ed7f2d0690
Merge pull request #7255 from digitalcarp/cleanup-includes
Get rid of relative include paths
2024-12-26 22:25:58 -08:00
Lawrence37
3c21dca522
Merge pull request #7253 from digitalcarp/framing
Add Framing Tool
2024-12-18 22:16:28 -08:00
Lawrence Lee
efb8870877
Reject bad pixels with raw de-haze
Do not consider pixels lower than the black level.
2024-12-14 15:29:23 -08:00
Lawrence37
9fbdc25245
Merge pull request #7258 from Lawrence37/raw-dehaze-crash-fix
Multi-frame image crash fix
2024-12-14 12:46:48 -08:00
Lawrence37
31e90afe22
Merge pull request #7254 from Lawrence37/ilce-7m3-black-level
Sony ILCE-7M3 (and other Sony cameras) black level
2024-12-14 12:46:01 -08:00
Lawrence37
f2fe3bffe5
Merge pull request #7249 from Lawrence37/canon-r8-masked-area-fix
Canon R8 electronic shutter black level fix
2024-12-14 12:44:55 -08:00
Lawrence Lee
fd445d00a6
Support demosaiced floating point DNGs with LibRaw 2024-12-08 14:34:56 -08:00
Daniel Gao
f8cde10662 Fix missing min frame border
* Previously only considered min border if the current border is smaller
* Need to consider as long as min size is enabled
2024-12-06 22:16:27 -05:00
Daniel Gao
a54aacca3f Switch framing tool events to use event mapper
* Removed hard coded events from ProcEventCode and RefreshMap
* Change HISTORY_MSG_* to HISTORY_MSG_FRAMING_*
2024-11-30 15:03:14 -05:00
Daniel Gao
d3962c7e56 Fix framing tool issues
* Print messages only in verbose mode
* Linearize 8-bit values to 16-bit values properly
* Fix memory leak
2024-11-30 14:31:18 -05:00
Daniel Gao
f983da5d16 Fix bugs in framing tool sizing
* Rework uniform relative size calculations
* Fix minimum size requirements not being respected
* Fix typo in framing tool keylib value
* Drive-by code formatting changes
2024-11-30 13:55:52 -05:00
Lawrence37
b0117b7a60
Merge pull request #7246 from Lawrence37/offset-time-default
Include offset times in default EXIF tags
2024-11-24 16:13:23 -08:00
Lawrence37
9774355960
Merge pull request #7240 from Beep6581/se-exposure-cbdl-dehaze-crash-fix
Fix for crash with Haze Removal, CBDL, and Selective Editing Exposure
2024-11-24 16:12:34 -08:00
Lawrence37
74adad2c8c
Merge pull request #7239 from Beep6581/channel-mixer-deactivated-fix
Fix for channel mixer deactivation
2024-11-24 16:11:52 -08:00
Lawrence37
98136d3738
Merge pull request #7235 from Lawrence37/fftw-blur-radius-fix
FFTW blur radius fix
2024-11-24 16:10:38 -08:00
Lawrence Lee
2a6b79fb0c
Fix crash when opening multi-frame images
Fix source of raw data when calculating raw minimum values for raw
de-haze.
2024-11-24 12:04:54 -08:00
Lawrence Lee
2a91962c48
Fix usage of deprecated Exiv2 function
Exiv2::enableBMFF() is deprecated as of v0.28.3. Only the CMake flag
EXIV2_ENABLE_BMFF is required to enable BMFF support.
2024-11-19 23:35:07 -08:00
Daniel Gao
45bde1c999 Add uniform relative sizing method to framing tool 2024-11-18 15:33:55 -05:00
Daniel Gao
bbb3efd81d Fix resize scale adjustment with framing 2024-11-18 15:33:55 -05:00
Daniel Gao
57ef07f3f6 Improve framing tool usability
* Rename "Resize" to "Resize & Framing" from discoverability
* Add ColorPreview class for displaying a solid color
* Add border color preview
2024-11-18 15:33:55 -05:00
Daniel Gao
2458ba4a29 Fix missing FramingParams equality check in ProcParams 2024-11-18 15:33:55 -05:00
Daniel Gao
4358c2d7a6 Fix computation errors in framing tool
* Compute image aspect ratio if required instead of leaving at 0
* Fix divide by zero error in computing framed size
* Compute resize scale based on original crop
* Reword "Current" aspect ratio to "As Image"
2024-11-18 15:33:55 -05:00
Daniel Gao
7ccab91434 Implement drawing border for framing tool
* Draws border after all resize operations are complete
* Update the RGB sliders for 16-bit channels
2024-11-18 15:33:55 -05:00
Daniel Gao
a96dc4cdde Calculate required image and frame sizes
* Refactor simpleprocess.cc to be more clear on resize dimensions
* Implement image and frame sizing calculations
* Resizes the image based on adjusted framing calculations
* Missing functionality to draw border around image after resizing
2024-11-18 15:33:54 -05:00
Daniel Gao
29945f4a35 Implement ProcEvents for framing tool
* Add new events to ProcEvents
* Add new events to refresh map under RESIZE category
* Add new strings for displaying events in history panel
* Hook up GUI events with emitting ProcEvents
2024-11-18 15:33:54 -05:00
Daniel Gao
d1148539bb Implement load/save for FramingParams
* Implement writing FramingParams to keyfile
* Implement reading FramingParams from keyfile
2024-11-18 15:33:54 -05:00
Daniel Gao
8e68eccb85 Add framing tool ProcParams
* Adds FramingParams parameter struct to ProcParams
* Implement saving and writing to struct from framing tool GUI
2024-11-18 15:33:53 -05:00
Daniel Gao
03a73eb3a4 Add framing tool GUI
* Added under the Resize tool like PR sharpening
* Adds FramingParams and FramingParamsEdited structs
* No parameter read/write implemented
* No support for batch mode
* No adjuster listeners implemented
* Signals and callback functions are defined but do nothing
2024-11-18 15:33:53 -05:00
Lawrence Lee
721d664136
Fix compiler warnings 2024-11-17 22:11:57 -08:00
Lawrence Lee
cf20964b59
Fix compiler warnings 2024-11-17 15:39:07 -08:00
Lawrence Lee
4e9ceff1e9
Merge remote-tracking branch 'origin/fix-warnings-5.9' into fix-warnings-5.12 2024-11-16 22:27:29 -08:00
Daniel Gao
711f274403 Get rid of relative include paths
* Use target_include_directories to specify include paths
* Specify project root (parent of rtgui and rtengine) as include path
* Replace relative includes with normal includes
2024-11-16 17:20:02 -05:00
Lawrence Lee
0051a4cd95
Fix Canon R8 black level with electronic shutter
Remove bad pixels from the masked areas. The top ~40 rows are slightly
brighter than the rest, and the remaining rows at the top near the
center are brighter too (not as bright as the top 40 rows though).
2024-11-16 12:21:44 -08:00
Lawrence Lee
31076f0a62
Fix dcraw reading of black level for Sony
Don't set black level from tiff_bps if a black level is in the metadata.

Remove the Sony ILCE-7M3 black level from camconst.json. The black level
is in the metadata (512 for ISOs < 128000, 1024 for ISOs >= 128000).
2024-11-16 12:11:49 -08:00
Desmis
b73840cf3c
Gamut compression - reduce artifacts resulting from out of gamut (#7205)
* First functions needs for ACES

* New file GUI compressgamut

* GUI first step

* GUI first step

* Gui step 2

* GUI procparams and paramsedit

* GUI read

* GUI step 4

* GUI step 5

* First tooltip

* Gamut compression tooltips

* Various GUI improvment

* History msg

* Comment code with Aces remarks

* First change improccoordinator and events

* Save work on matrix

* Compress gamut next work

* First try gamut compress

* Replace cout by printf in invertmatrix

* Change tooltips and events

* Added namespace std to iplab2rgb

* Comment code

* Active rtthumbnail

* Change tooltip

* Various improvment GUI and rolloff

* Added adobeRGB gamut

* Appimage windows yml

* Remove rttumbnail gamutcompr

* Change event to COMPR

* Change tooltip and verbose

* Restore raw de-haze history message

* Refactor ACES gamut compression functions

* Fix gamut compression color space history message

Correctly display the color space name.

* Add "unchanged" for gamut compression color space

Allow "unchanged" in batch mode.

* Fix gamut compression yellow distance for batch

* Update copyright for gamut compression GUI

* Fix gamut compression color space names

* Refactor gamut compression code

* Remove comment rtthumnail.cc - Acesp1 default

* Change matrix DCI-P3 - threshold maximum to 1 in GUI and in gamut compression - tooltips

* Change tooltip

* Clean code - change tooltips

* Remove appimage windows yml

---------

Co-authored-by: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com>
2024-11-14 13:08:52 +01:00
Desmis
691fe80896
Revert "Generalized Hyperbolic Stretch in Selective Editing (#7210)" (#7250)
This reverts commit 16db6186ddf4f1d8e2cc0c6d744071ce1195163d.
2024-11-14 10:29:29 +01:00
Desmis
16db6186dd
Generalized Hyperbolic Stretch in Selective Editing (#7210)
* GHS GUI first step

* GHS GUI first step

* GUI step 3

* Hide show ghsmethod

* Siril functions for ghs

* Init ghs in iplocallab

* ghs step 2

* ghs step 4

* Comment copyright Pixlnsight 2021

* Smooth highlights and tooltips

* Enabled saturation and luminance ghs mode

* First tooltip

* Ghs tooltips

* Remove wrong packstart inverssh

* Change labels and tooltips

* Disabled mask in global and other improvments

* Comment code

* appimage and windows yml ghs

* Change tooltip

* Ghsmethod hue and change tolltips

* Change tooltip

* Inverse Stretch step 1

* Inverse GHS

* GHS tooltips

* Change tooltips

* Change tooltip

* Linear black point

* Small change to blackpoint

* Change tooltip

* Clean and comment code

* forgotten GHS highlight attenuation msg in history

* Comment code with Transformation equations

* Change tooltip

* Wrong default value balck point

* Comment code iplocallab

* Ghs curve step 1

* GHS curve step 2

* Show GHS setting in a Curve Box

* Tooltip for ghs S curve

* Disabled warning in compilation simpleprocess

* Simplified code part 1

* Simplified code GHS graph part 2

* Improve black point with negatives values

* Improve BP and tooltip

* Listener enable only with GHS

* White point for GHS

* Change label and tooltip

* Improve behavior white point and black point

* Link sliders ghs_SP ghs_LP ghs_HP and change code to avoid balck screen

* hide unused button in diagonal curve GHS

* prevents the GHS representation in S from displaying artifacts if ghs-d=0

* Change tooltips

* Improvment and tooltips

* Forgotten tooltip

* Improve GUI GHS S curve - change tooltips

* Set transition gray areas in S curve GHS with values of the RT-spot

* Change label GHS

* setlogscale blackpoint and symmetry

* Set recursive reference enable by default in controlspotpanel

* Change lastlocalCurvesDir Dirghs in locallabtools and options - change labels

* Added in converttonormal ghsMode.. not sure if this is useful

* DIY to make GHS curve work without the choices

* Change RGB calculation with luminance function working profile

* 5 modes GHS method

* Label to show datas clipped Black point and White point

* Various change white point tooltips

* Bad behavior wp bp labels

* Small change to improccordinator call to ghschanged ghsbwchanged

* Set log scale ghs_D

* Hide Graduated filter if GHS enable

* Luminance Lab in ghsmethod

* Lab slope factor step 1

* Slope and Chromaticity GHS improvments

* Fixed bad sqrt line 17477 iplocallab

* Workaround linear GHS - re-enable Graduated filer GHS

* Change limits slope lab factor

* Ghs chromaticity Lab (Lch)

* Improve ghs chromaticity

* Change labels and tooltips Lab chroma

* Slope Lab to 100

* Noise and saturation RGB

* Saturation RGB standard and labels

* Change histogram and navigator panel without gamma when using working profile

* Remove gray in GHS curve

* Local contrast a minima

* Regularization stretch

* Improve Graduated Filter in all cases GHS Color and Light etc.

* Improves nlmeans to reduce noise after GHS

* Change to GF - tooltip Nlmeans

* Added oW oH tW tH etc.

* Added call GF

* tX tY for previewProps

* Comment code GF

* Improve local contrast ghs

* Change norm to norm2

* Improve GUI mode complexity and Lab GHS

* Show values BP WP in GUI

* Labgrid ghs step 1

* Labgrid for simulation GHS - step 2

* More points for Labgrid ghs

* Clean and comment code

* Fixed crash in inverse GHS white point - set to 10 points for GSH simulation

* Change to black point in inverse GHS

* Intilialize simulation with nothing if new spot

* Remove curve GHS - optimize code simulation - improve GUI

* set ghs default - fixed crash is case HP SP LP

* Fixed crash - I hope in inverse GHS

* Simplify WP and BP limits to avoid crash in inverse GHS

* Clean code with ghscurve - ghsshape

* Change tooltips

* Change to D - GUI - comment code

* Simulation with 4 more points

* Best simulation with point 0.05 and 0.95

* Clean code - change for crsah in Inverse GHS

* Show values WP and BP
2024-11-13 08:23:41 +01:00
Lawrence Lee
d2e2f0f839
Add offset times to default selected EXIF 2024-11-10 17:32:28 -08:00
Lawrence Lee
6bd9d410ca
Move camera constants into multiple JSON files
Create dcraw.json for dcraw constants, rt.json for RawTherapee overrides
for dcraw, and cammatrices.json for color matrices from Adobe DNG
Converter.

Cherry-picked from ART, commit 4f360f3a883f6920f6507c533646db275853093f.
2024-11-10 14:59:16 -08:00
Lawrence37
bc2fbfad66
Merge pull request #7212 from Lawrence37/canon-burst
Support for images with more than 6 sub-frames
2024-11-08 22:01:58 -08:00
Lawrence37
24214fbd57
Disable exposure Laplacian when CBDL enabled
Avoids crashes due to NaNs.
2024-11-05 23:14:39 -08:00
Lawrence37
3347569d88
Fix channel mixer deactivation
The channel mixer deactivates when the primary values are set to 10.
2024-11-05 22:35:42 -08:00
Lawrence Lee
9b16f407aa
Fix blur radius when using the Fourier method
Fix the formula, adapt old pp3s, and change the maximum blur radius
where applicable.
2024-10-27 18:45:58 -07:00
Lawrence Lee
eac9cdaa00
Improve Sony Pixel Shift support
Detect images created by make_arq as pixel shift.
Add raw crop for Sony ILCE-7CR pixel shift.
2024-10-07 21:10:16 -07:00
Lawrence Lee
860306dc35
Allow reading more than 6 sub-frames
This allows all images to be read from a Canon burst raw file.

Refactor raw image source to use unique_ptr.
2024-10-06 18:01:40 -07:00