Commit Graph

286 Commits

Author SHA1 Message Date
Desmis
e25f5aa455 Rebuild wavtm with curve finerCoraser - language - various chnages to denoise 2020-05-12 09:11:16 +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
ac83695645 Suppress warning and add tooltips 2020-03-27 09:27:43 +01:00
Desmis
51f1198b65 Init blur by levels 2020-03-25 18:06:32 +01:00
Desmis
0ffa61748d Prepare ipwavelet and periph to TM 2020-03-22 15:31:36 +01:00
Desmis
1f4613cd3b GUI for TM wavelet 2020-03-22 10:37:21 +01:00
Ingo Weyrich
0e5f514ec1 recalculate itcwb when demosaic method changed 2020-03-06 12:00:21 +01:00
Desmis
60160025f9 Ciecam02 chnage default settings cat02preset 2020-03-03 08:07:36 +01:00
Desmis
f4da001589 Ciecam02 autotempout button 2020-03-02 20:00:02 +01:00
Desmis
32165f9f7d Small improvment and format code improccoordinator wb 2020-03-02 18:07:41 +01:00
Desmis
dbeccefd44 Display good values Temp green if autold selected 2020-03-02 16:55:24 +01:00
Ingo Weyrich
8b450d3f77 Merge pull request #5675 from Beep6581/rawimagesource_cleanup
Cleanups for rawimagesource.cc
Speedups for ItcWB
2020-03-01 13:45:06 +01:00
Ingo Weyrich
d0034c880b further cleanups and speedups for ItcWB/getrgbloc 2020-03-01 11:50:58 +01:00
Ingo Weyrich
cee41b9786 restore speed when not using auto itc wb and improve speed when using it 2020-02-29 21:04:09 +01:00
Desmis
aa389dbcae Ciecam02 fixed bad temp and tint cat02preset 2020-02-29 12:51:17 +01:00
Desmis
d55e649a64 merge with dev 2020-02-29 08:14:03 +01:00
Ingo Weyrich
a9e2bde610 use autold instead of auto, #5676 2020-02-28 11:44:25 +01:00
Ingo Weyrich
d2f78efd32 improccoordinator.cc : be cppcheck clean 2020-02-27 14:20:28 +01:00
Desmis
2bc9396569 Fixed show wavelet levels 2020-02-27 13:33:51 +01:00
Desmis
a2f7d39ad2 merge with dev 2020-02-27 08:51:11 +01:00
Desmis
4863c7a372 clean unused changes 2020-02-26 15:37:49 +01:00
Desmis
8cfc4e33af partial fixed wrong old WB auto 2020-02-26 15:22:28 +01:00
Desmis
603b55e690 Preset cat02 automatic 2020-02-25 17:28:19 +01:00
Desmis
352873ea30 Suppress dispaly Student itcwb in Pick 2020-02-25 13:19:52 +01:00
Desmis
eeb24af8f0 Suppress message in console except verbose 2020-02-25 12:48:23 +01:00
Desmis
74c40382c8 merge with dev 2020-02-25 07:56:36 +01:00
Desmis
92fc0e307f merge with dev 2020-02-24 11:09:20 +01:00
Desmis
81c6e4635d merge with dev 2020-02-24 11:05:55 +01:00
Ingo Weyrich
2c831a11a7 more double promote fixes 2020-02-09 23:34:12 +01:00
Desmis
ba7a61c391 merge with dev 2020-01-13 08:33:45 +01:00
Desmis
4e81cbaa72 merge with dev 2020-01-13 08:02:43 +01:00
Ingo Weyrich
2ce6e6d1d3 skip unnecessary transform 2020-01-02 14:35:27 +01:00
Desmis
d701afdef0 merge with dev 2019-12-01 06:56:16 +01:00
Desmis
c0da01cf9a merge with dev 2019-12-01 06:53:23 +01:00
Ingo Weyrich
89d8c341a6 Some code cleanups 2019-11-21 19:36:16 +01:00
Desmis
e8986731e8 merge with dev 2019-11-07 08:09:21 +01:00
Desmis
d621721ffe merge wit dev 2019-11-07 07:17:19 +01:00
Ingo Weyrich
03c0d6c86c Some cleanups, also fix some fallouts from reduce_include_dependencies branch 2019-11-05 20:31:17 +01:00
Ingo Weyrich
d731e172c2 Further reduction of include dependencies 2019-11-01 16:15:59 +01:00
Ingo Weyrich
e682b364b5 Further reduction of include dependencies 2019-11-01 14:51:33 +01:00
Ingo Weyrich
cac2eb53ef Further reduction of include dependencies 2019-10-31 20:41:08 +01:00
Ingo Weyrich
6935faa258 Further cleanup of include dependencies 2019-10-30 22:12:06 +01:00
Ingo Weyrich
ba8dda1836 Further cleanup of include dependencies 2019-10-30 16:38:02 +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
20726d5bfe Forward declare Imagefloat 2019-10-28 20:01:16 +01:00
Ingo Weyrich
22e5348db7 Forward declare LabImage 2019-10-28 17:17:15 +01:00
Ingo Weyrich
eaf0eeff4e Forward declare CieImage 2019-10-28 15:43:58 +01:00
Desmis
9e9d0cd503 merge with dev 2019-09-17 11:11:43 +02:00