Commit Graph

204 Commits

Author SHA1 Message Date
Desmis
32329f306f Prepare rtengine for CH curve 2020-07-13 17:32:38 +02:00
Ingo Weyrich
a0eacde31a Merge branch 'dev' into cleanup_locallab_periphery 2020-06-28 12:20:54 +02:00
Ingo Weyrich
96c5eff50c Further cleanups to locallab periphery 2020-06-27 13:13:26 +02:00
Ingo Weyrich
01e48cc809 Some first cleanups for locallab periphery 2020-06-26 21:20:26 +02:00
Desmis
fb06a4dcfd Pass GUI parameters mask to rtengine and iplocallab.cc 2020-06-23 12:00:23 +02:00
Desmis
90dedb001f Add common mask curve to rtengine and iplocallab.cc 2020-06-23 09:17:37 +02:00
Desmis
a806d00268 Merge with dev 2020-05-13 08:51:50 +02:00
Pandagrapher
276dd89382 Save GUI part for deltaE preview in Locallab settings panel 2020-05-12 16:23:29 +02:00
Desmis
e25f5aa455 Rebuild wavtm with curve finerCoraser - language - various chnages to denoise 2020-05-12 09:11:16 +02:00
Pandagrapher
cca6b09768 Merge remote-tracking branch 'dev/newlocallab' into newlocallab 2020-04-20 12:54:09 +02:00
Desmis
f0e78b2a0d merge with dev 2020-04-18 07:43:44 +02:00
Pandagrapher
4ea4663e34 Merge with 'dev/newlocallab'... 2020-04-16 16:01:53 +02:00
rom9
22eee9787e Film negative stable multipliers (#5485)
* Added new feature to calculate channel multipliers from crop area. This also saves the crop area channel medians to the processing profiles, in order to get a more consistent color balance when batch-applying the same profile to multiple pictures from the same film roll.

* Fixed wrong initialization of array, and missing check for the result of `getFilmNegativeMedians()`.
Moved `ImProcCoordinator::translateCoord()` from private member to anonymous namespace.
Fixed some whitespace and formatting issues.

* Fixed some formatting issues

* Passed `ipf` parameter as const in `translateCoord`.
Narrowed `using namespace` to single class `Coord2D`.

* Added `scaleGain` entry to thumbnail metadata file, to make `scale_mul` multipliers available in thumbnail processing phase. This simplifies multiplier calculations, so that "faking" thumbnail multipliers in the main image processing is not necessary anymore. This way, output values are immune to slight variations of multipliers between successive shots taken with in-camera AWB turned on.
Shifted multipliers so that the output channel medians are balanced when "Camera WB" is selected. This way, just computing multipliers from crop and setting "Camera WB" (which is the default) gives a pretty well balanced image as a starting point.

* New channel scaling method, based on a film base color sample instead of crop area channel medians. Channels are scaled so that the converted film base values are equal to 1/512th of the output range (65k). This giver better black levels in the output, and more consistency when batch-processing multiple negatives.
The output is now compensated for a known fixed WB value, so that the film base will appear grey when WB is set to 3500K, Green=1.
Added PPVERSION 347 to preserve backwards compatibility: when a processing profile saved by RT 5.7 is loaded (PPVERSION=346), the new fields are initialized to the special value -1, which will instruct the main processing to follow the old channel scaling behaviour. The old channel scaling multipliers will then be converted to the new film base values so that the resulting image is the same, and the fields will be overwritten as soon as the PP is saved again. This will transparently upgrade the processing profile.
When the new behaviour is used, but the film base values are still unset, they are estimated based on channel medians, excluding a 20% border around the image. This should give a better result out-of-the-box for pictures containing a large film holder.

* Code cleanup from review

* Run astyle on film neg source files

* Fixed automated build failure caused by incompatible libraries on my dev PC.

* Simplified `Thumbnail::processFilmNegative` method signature. There is no need to pass in `rmi`,`gmi`,`bmi` multipliers from the caller, i can do the same with my own internal multipliers.

* Added `FilmNegListener` class to pass estimeted film base values to the GUI after first processing. Removed old `filmBaseValues` instance variable from RawImageSource.

* Code cleanup

* Forgot to set baseValues flag in `PartialPasteDlg::applyPaste`
Fixed `filmBaseValuesLabel` not updating when reading zero baseValues. Normally not needed (the label is updated later by the listener), but when the user is browsing through pictures the listener won't fire, so the label must be updated to show values are unset.

* Overwritten channel scaling multipliers by calling `get_colorsCoeff` with `forceAutoWB=false`.
Initially, in `RawImageSource::load`, channels are auto-balanced by averaging the whole picture when computing multipliers.
This can give different multipliers for multiple shots of the same camera, which will lead to inconsistent conversions when batch-processing multiple negatives.
This commit re-sets `scale_mul`, `ref_pre_mul`, etc., in order to "undo" the auto-WB and use the normal camera multipliers.

* Found an easier way to get stable overall multipliers, removed the (horrible) on-the-fly mutation of scaling instance variables.
2020-04-13 17:20:56 +02:00
Desmis
c062d654bb merge with dev 2020-03-29 18:31:52 +02:00
Desmis
51f1198b65 Init blur by levels 2020-03-25 18:06:32 +01:00
Desmis
1f4613cd3b GUI for TM wavelet 2020-03-22 10:37:21 +01:00
Desmis
e573de78b4 merge with dev 2020-03-19 13:40:11 +01:00
Desmis
92fc0e307f merge with dev 2020-02-24 11:09:20 +01:00
Ingo Weyrich
c984a95b9e Merge branch 'dev' into newlocallab 2020-02-07 18:24:50 +01:00
Ingo Weyrich
aae22fcc86 Merge pull request #5617 from Beep6581/devirtualize
devirtualize method calls by declaring classes and methods final
2020-02-07 17:06:30 +01:00
Desmis
82d8844ee6 Prepare Edge Sharpness wavelet pyramid 2020-01-26 10:17:34 +01:00
Ingo Weyrich
9a4ade6f20 devirtualize method calls by declaring classes and methods final 2020-01-23 22:18:46 +01:00
Desmis
6e3fd503cc Added show modifications to sharpening 2020-01-21 09:14:39 +01:00
Ingo Weyrich
bf301b7e40 reduce include depenencies 2020-01-18 23:46:48 +01:00
Desmis
5823ad39f2 First dynamic wavelet compression pyramid 2020-01-03 13:41:25 +01:00
Desmis
46b9aa95e2 Added mask to local contrast 2019-12-21 12:51:27 +01:00
Desmis
cf214c7a1b Save provisory work GUI 2019-12-20 18:16:10 +01:00
Desmis
8361591e0e Simplify denoise curve replace 4 sliders luminance 2019-12-20 08:52:52 +01:00
Desmis
1981b17245 First levels dynamic range compress Contrast wavelet 2019-12-16 12:36:45 +01:00
Desmis
2f414e20ed Add contrast by level to wavelet pyramid 2019-12-14 09:08:12 +01:00
Desmis
290fa796e8 Third commit Wavelet pyramid - Blur level curve by level 2019-12-13 18:27:54 +01:00
Desmis
d701afdef0 merge with dev 2019-12-01 06:56:16 +01:00
Desmis
a964fc34a1 Other small change to repartition normal confirmed 2019-11-28 10:28:14 +01:00
Desmis
e366cf39a4 merge with dev 2019-11-22 07:28:09 +01:00
Ingo Weyrich
7b54c7f2a4 Some code cleanups 2019-11-21 21:36:57 +01:00
Desmis
bf92843340 Prepare rtengine work for mask vibrance 2019-11-17 16:16:26 +01:00
Desmis
8f79670aa8 save provisory work GUI vibrance mask 2019-11-17 11:24:29 +01:00
Desmis
cb61c55d8f prepare work for mask H(H) in Color and light 2019-11-15 11:05:28 +01:00
Desmis
1dcf11c254 merge file also with previous Spot 2019-11-07 19:35:18 +01:00
Desmis
e8986731e8 merge with dev 2019-11-07 08:09:21 +01:00
Desmis
34851ead73 Add rgb curve to color and light 2019-11-05 12:09:07 +01:00
Ingo Weyrich
033d9fe02a Merge branch 'dev' into newlocallab 2019-11-04 23:01:33 +01:00
Ingo Weyrich
cac2eb53ef Further reduction of include dependencies 2019-10-31 20:41:08 +01:00
Flössie
add5c790d6 #pragma once for our headers plus drive-by formatting 2019-10-31 10:20:50 +01:00
Flössie
d7ec033829 Reduce dcp.h dependencies 2019-10-30 09:30:21 +01:00
Ingo Weyrich
3aa84c48da Forward declare ColorTemp 2019-10-29 12:33:14 +01:00
Ingo Weyrich
e92a99350b Forward declare Image8 2019-10-29 11:44:00 +01:00
Ingo Weyrich
54b6b53e12 Reduce image16.h dependencies 2019-10-28 21:15:34 +01:00
Desmis
b608ce7efb Clean and save code 2019-10-28 17:15:31 +01:00
Desmis
575016df6e Add wavelet mask local contrast to mask 7+* 2019-10-17 16:26:45 +02:00