Commit Graph

122 Commits

Author SHA1 Message Date
Desmis
82129b304d Re-open Generalized Hyperbolic Stretch (#7251)
* 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

* Change tooltips

* Midtones after GHS

* Modification code WP BP

* Tests changes in settings for transition and Shape detection - see Preferences

* Change order labels luma chroma hue

* Fixed bad behavior localllistener denchanged in dcrop.cc

* Save work

* Work on graduated filter

* Improve a little graduated filter SH and others...

* 3 configurations tests graduated filter SH plain image - color more sk - exposure normal

* Forgotten code ...

* Change improccordinator parameter

* Save work printf parameters GF

* New test for GF

* Hide plain image calculation GF

* Small chnages and comment code

* Change tooltip exp graduated filter

* Change tooltip exp graduated filter

* Save work

* Change GF for some tools only in Global and Fullimage - test for GF SH mode plain image

* Fixed crash and GUI part 1

* Others change GF

* Change label - allow GF plain image in SH

* Change GF with cx cy sk

* Adapt locallabtool and locallabtools2 to GF

* Clean code

* GF wavelet only in fullimage and global

* GF - Empirical correction to cx and cy in function of sk

* Change label GHS and position in GUI

* Fixed Black point bad behavior history - an oversight may be age

* Change real strength of GF - to look like GF main

* Include ksk - Skip correction in all code GF

* Passed other parameters to try

* New parameter for GF

* Change position graph-curv ghs and labels black and white point

* Change behavior and default value white point

* Save provisory work

* Save provisory work

* Curve GHS with 21 points including 0 and 1

* Two prameters added to change behavior GF - rationalize their using

* Change Black point direction

* Change range black-point for negatives values - chnage tooltips

* Change tooltips

* Various change to avoid crash and settings defaults

* Disabled showmùaskmethod - set max white point to 5

* Fixed bad behavior when change fullimage to global for mask

* Clean comment code

* Fixed - I hope - bad behavior when we go from Fullimage to Global and vice versa

* Fixed crash in output tif and show time to calculate WP and BP

* Change tooltip BP and WP

* Change tooltips BP WP

* move GF after GHS so as not to influence BP and WP

* Clean code

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

* Change tooltip graduated filter

* Restore GF in normal mode - and increases GF strength as before

* Clean code locallabtools 1 2

* Comment in calclocalGradientParams in iplocallab for changes in Graduated F

* Change convention labels - tooltips

* Change tooltips

* improves (I hope) the readability of the tooltips

* Remove with comment change complexity in Settings

* Improve settings BP WP - improve tooltips

* Refactor GHS curve and increase resolution

Simplify how the curve parameters are passed to the drawing area.

Use up to 400 line segments to draw the curve.

* Update GHS curve tooltip

Remove statement regarding the number of points used because it is no
longer accurate.

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Change Luma with Lightness

* Update rtdata/languages/default

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

* Update rtdata/languages/default

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

* Remove warnings in icmpanel

* Changes suggested by Lawrence37

* GHS - Hide inverse always show in some cases - improve tooltip BP WP

* Change tooltip

* Change tooltip

* Small changes

* Change tootip suggested by Lawrence37 - set midtones and LC set_sensitive in function of D

* Add tooltip as suggest by Lawrence37 for LC and midtones

* Remove tooltip on Frame LC and Midtones

* Remove all traces toottips frame LD and Midtones

* set sensitive BLP and HLP to false if stretch = 0

* Change Beep6581 to Rawtherapee in appimage.yml and Windows.yml

* Hide LC and midtones when Stretch = 0

* Clean up Generalized Hyperbolic Stretch code

Convert some ints into enum classes.

Replace new/delete with std::unique_ptr for image.

Remove unused GHS parameters in ProcParams and ParamsEdited which were
used to draw the curve.

Revert changes to the curve editors because they are not needed.

Simplify the drawing of the curve background for efficiency.

Restore the const-ness of some variables.

* Change appimage.yml and windows.yml

---------

Co-authored-by: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com>
2025-03-29 18:07:58 +01:00
Alexander Brock
d9886b7b5c Make the behaviour of manually-set scale the same as auto-fill scale 2024-09-12 21:26:32 +02:00
Alexander Brock
71c69e07bd Remove dependency of de-fishing on perspective parameter (crop factor) 2024-09-04 00:40:41 +02:00
Alexander Brock
c491a405a4 Add function needsScale() to make sure scale is applied if defish is not active 2024-07-27 15:30:24 +02:00
Alexander Brock
fc78a64066 Move scale option from perspective correction to lens/geometry 2024-07-20 14:56:21 +02:00
Alexander Brock
6d96bfe5cc Merge branch 'dev' of https://github.com/Beep6581/RawTherapee into defish 2024-07-20 00:15:43 +02:00
Simone Gotti
2b97de233f Add initial metadata lens correction handling 2024-07-08 10:30:51 +02:00
Simone Gotti
b98fa42857 lens profile: report availability of distortion and vignetting
Beside CA, report also distortion and vignetting availability. Rename
is${CORRECTION}Available methods to has${CORRECTION}.
2024-07-08 10:29:43 +02:00
Simone Gotti
dc0e23c82c iptransform: apply distortion and CA correction in a single pass
Some lens profile methods provides a way to correct distortion and CA in
a single step.

When available, applying distortion and CA correction when both enabled
in a single pass is more precise (see lensfun
ApplySubpixelGeometryDistortion doc) since it's usually how the profile
is done. Instead applying the CA correction in a step after distortion
correction could lead to a bit different (also if not always visible)
correction.

This is also required for future lens correction methods (like DNG
WarpRectilinear or corrections based on vendor metadata) that provides
only merged distortion and CA correction in a single pass.
2024-07-08 09:40:36 +02:00
Simone Gotti
55fd4b975e iptransform: move profile based CA with and after distortion
Doing profile based CA as the really first correction in a separate steps is
probably not useful.

Additionally many lens profile (lensfun) and future one provide
functions to do them in a single step with better precision while other
just provide a single step that does both (i.e. DNG WarpRectilinear).

For the above reasons this patch removes the additional pass for CA correction.
This will also improve the perfomance due to less work.
2024-07-08 09:39:23 +02:00
Simone Gotti
363f3cc2a6 iptransform: correct profile based distortion/CA before rotation
Like perspective correction also rotation correction should be applied
after distortion/CA correction.
2024-07-08 09:32:35 +02:00
Alexander Brock
f9e2e934df Move de-fish to distortion 2023-03-22 00:19:26 +01:00
Alexander Brock
e38a36ed9d Make ImProcFunctions::needsTransform more readable 2023-03-04 00:04:23 +01:00
Alexander Brock
8b51d8297f Move de-fishing code _before_ distortion correction, so de-fishing occurs _after_ distortion correction. 2023-02-25 21:59:25 +01:00
Alexander Brock
c29194d2f2 Get rid of magic number in favor of already present computation of the focal length 2023-02-25 21:42:07 +01:00
Alexander Brock
6ed53affda Avoid unnecessary copy of variable 2023-02-22 13:52:06 +01:00
Alexander Brock
20f3b33c5f Add crop factor to fisheye computation 2023-02-22 11:06:49 +01:00
Alexander Brock
2e66dc11a2 Style changes as requested 2023-02-22 10:52:42 +01:00
Alexander Brock
0cfbf86129 Set scale for defishing after determining it manually from blender rendered scene 2023-02-19 20:10:44 +01:00
Alexander Brock
f023a90170 Add camera_defish to PerspCorrection::read/write 2023-02-11 23:51:32 +01:00
Alexander Brock
841e2ff26f Add de-fishing to ImProcFunctions::transCoord so the source window is correctly estimated when using de-fishing 2023-02-11 22:53:23 +01:00
Alexander Brock
fb90908cbd Add GUI elements for defish and scale in perspective tool. Doesn't work very good yet. 2023-02-11 20:31:08 +01:00
Alexander Brock
9de5cb9915 Add hard-coded fisheye un-distortion operation for testing / discussion 2023-02-04 00:59:04 +01:00
Lawrence Lee
9c5ce0d9bb Fix focal len autofill after browser adjustments
Don't update the camera-based perspective focal length and crop factor
parameters when making other adjustments using the file browser or batch
editor.

Closes #6402
2022-01-08 12:02:25 -08:00
Lawrence37
eb01f99bf2 Merge pull request #5814 from Lawrence37/perspective-lines
GUI improvements for perspective correction
2020-10-08 09:55:37 -07:00
Lawrence Lee
11d68a7136 Fix autofill amount bug (#5826)
I forgot to change some values when fixing the order of profiled
distortion correction in the processing pipeline (#5595).
2020-07-05 11:41:12 -07:00
Lawrence Lee
55a8238971 Fix temp image dimensions in transform (#5594)
The temporary image should be the same size as the transformed image,
not the original image.
2020-07-01 11:15:06 -07:00
Lawrence Lee
c2ea6b2ebc Merge from 'dev' 2020-06-25 21:58:02 -07:00
Lawrence37
763e3f7364 Merge pull request #5595 from Lawrence37/distortion
Move profiled distortion correction in pipeline
2020-06-25 10:56:58 -07:00
Lawrence Lee
72de3f21c7 Remove misleading comments 2020-06-25 10:39:21 -07:00
Lawrence Lee
7abe6c9044 Merge from branch 'dev' 2020-06-18 16:42:17 -07:00
Lawrence Lee
6b7c1871b9 Implement basic perspective control lines (WIP) 2020-06-08 18:21:12 -07:00
Lawrence Lee
fb5094b6f9 Merge from branch 'dev' 2020-05-04 14:07:45 -07:00
Lawrence Lee
8a970f95bc Merge from branch 'dev' 2020-05-04 11:49:34 -07:00
Desmis
e573de78b4 merge with dev 2020-03-19 13:40:11 +01:00
Lawrence Lee
357cf5b96a Remove scaling from perspective correction
Scaling is applied at the end of all geometric transformations, so it
would be more appropriate outside of the perspective correction tool.
Such an implementation would also work better with the auto-fit feature.
2020-02-26 22:52:55 -08:00
Lawrence Lee
9a594474d9 Add auto focal length for perspective in editor
If the focal length and/or crop factor for the camera-based perspective
correction tool are not edited, they will be set using the focal length
information found in the image metadata. This only applies to the editor
(batch editor and CLI still default to 24 for the focal length and 1 for
the crop factor).
2020-02-23 21:21:36 -08:00
Ingo Weyrich
2c831a11a7 more double promote fixes 2020-02-09 23:34:12 +01:00
Lawrence
f16773eb3f Merge branch 'dev' into perspective
Resolve minor conflict in ImProcFunctions::transformGeneral and add new
arguments for use of ImProcFunctions::needsTransform in
PerspectiveCorrection::autocompute.
2020-01-18 18:41:26 -08:00
Lawrence
7395b26db4 Add rotation to camera-based perspective tool
This rotation is different from the Rotate tool and the post-correction
adjustment rotation because it is applied between camera shift and
camera angle. It is equivalent to correcting the camera's roll and is
the same as the rotation calculated by automatic perspective correction.
2020-01-18 17:13:24 -08:00
Desmis
62c18b4921 merge with dev 2020-01-11 11:51:04 +01:00
Ingo Weyrich
1a02f16c35 crash in Tab: transform, fixes #5604 2020-01-11 11:20:41 +01:00
Desmis
31d3b7bb4c merge with dev 2020-01-07 10:16:40 +01:00
Ingo Weyrich
e07ff4032b log transform: Fix segfault 2020-01-03 11:35:20 +01:00
Lawrence
b266cb7ca3 Remove scale parameter from distortion correction
Scale is no longer useful in LensCorrection::correctDistortion. Remove
the scale parameter from the functions.
2020-01-02 18:33:35 -08:00
Lawrence
512517327f Move profiled distortion correction in pipeline
Lensfun/LCP distortion correction was applied before automatic scaling
and perspective correction in the inverse transformation. This means it
was applied after scaling and perspective in the pipeline. It should
actually come first.
2020-01-02 17:10:41 -08:00
Ingo Weyrich
49d594f67a Log transform: add method combobox 2020-01-02 19:28:57 +01:00
Ingo Weyrich
2ce6e6d1d3 skip unnecessary transform 2020-01-02 14:35:27 +01:00
Ingo Weyrich
085c68fc29 Log tranform: fix bug in preview mode 2020-01-01 19:06:02 +01:00
Ingo Weyrich
52f7c2c531 Log transform: further speedup 2020-01-01 15:18:47 +01:00