Commit Graph

4937 Commits

Author SHA1 Message Date
Lawrence37
42817bffa4 Defringe tool banding & desaturation fix (#6934)
* Fix defringe banding & desaturation race condition

Use a copy of the image instead of the image itself for the source data.
Affects Defringe, Color Appearance & Lighting Hot/bad pixel filter, and
Contrast by Detail Levels Reduce artifacts.

* Fix CodeQL warning

Fix multiplication overflow.
2024-02-04 15:41:32 -08:00
Lawrence37
2f7c2e973c Fix rotation of images with odd number of rows (#6926)
* Fix line in middle of 180 degree rotated image

For images with an odd number of rows, a 180 degree rotation resulted in
one row of un-rotated pixels because it was effectively rotated twice.

* Replace verbose swap with std::swap
2024-02-04 15:40:38 -08:00
Lawrence37
0d0834cbe7 Dynamic Range Compression Improvement (5.10) (#6943)
* Improve Dynamic Range Compression - for some images with very high DR

* Clean code

* Improve TM fattal with saturation control in LA

* Saturation control fattal in LA

* Re-order paramsedit

* Change history_msg_tmo_satur with saturation

---------

Co-authored-by: U-PCSPECIALIST01\jdesm <jdesmis@gmail.com>
2024-02-04 15:38:04 -08:00
Lawrence37
f06e756c20 AWB non-raw file fixes (for 5.10) (#6940)
* Improve Itcwb with non-raw files

* Change pre-dev builds wbrefinement

* Change template in pre-dev

* Improvment improccordinator.cc

* Forgotten observer convert

* Reenable wbauto autogrey as 5.8

* Remove wrong code

* Missing getrgbloc references

* Fixed bug due to bias in queu with temperaure correlation issue 6911

* Simpleprocess queue compatibility tif-jpg

* Preserve AWB edits from 5.9

In 5.9 for non-raw files,
   1. RGB grey uses the unit multipliers with temperature bias applied.
   2. Temperature correlation uses the equivalent of temperature 5000,
      green 1, and red/blue equalizer 1.

* Refactor temperature correlation AWB code

* Fix inaccurate RGB grey WB preview after using ITC

The RGB grey automatic white balance algorithm caches the multipliers.
Temperature correlation automatic white balance also caches results to
the same location, but never uses it. This causes the RGB grey method to
produce incorrect results in the editor. Removing the temperature
correlation cache fixes the issue and does not have side-effects.

---------

Co-authored-by: U-PCSPECIALIST01\jdesm <jdesmis@gmail.com>
2024-02-01 22:41:56 -08:00
Lawrence37
13bf7a1f0a Merge pull request #6857 from Lawrence37/camconst-from-art
Update camconst.json from ART
2024-01-27 15:52:54 -08:00
Lawrence37
7eb2aedbc1 Merge pull request #6927 from Lawrence37/panasonic-dc-g100-white-levels
Panasonic DC-G100 white levels
2024-01-25 21:04:19 -08:00
Lawrence37
5ffa0632f2 Merge pull request #6885 from Lawrence37/asan-mem-leak
Fixes for memory leaks and memcpy overlap found by AddressSanitizer
2024-01-25 21:02:50 -08:00
Lawrence37
ddcaa7a81c Merge pull request #6881 from Lawrence37/lensfun-vignette-fix
Fix focus distance from metadata
2024-01-25 21:01:17 -08:00
Lawrence Lee
2bc7cea5a1 Add white levels for Panasonic DC-G100
Reduce white levels for ISOs 1600-4000 due to noise with LENR on.
2024-01-14 12:58:05 -08:00
Lawrence37
d0e36ee509 Merge pull request #6904 from Lawrence37/fix-odd-raw-crop-raw-ca
Fix for wrong colors when the demosaic border is odd
2023-12-23 11:14:37 -08:00
Lawrence37
85746a8093 Fix bad colors when demosaic border is odd
Colors are incorrect if the demosaic border is odd and raw chromatic
aberration is enabled.
2023-12-21 22:09:32 -08:00
Lawrence Lee
badbb9fbe2 Add checkbox for disabling NR gain
Option to disable noise reduction automatic gain for consistency between
photographs.
Fix automatic gain not being recalculated after changing the white level
correction.
2023-12-16 11:10:11 -08:00
U-PCSPECIALIST01\jdesm
339fdd9f04 Ftblockdn - remove unwanted messages in console 2023-12-12 22:15:09 -08:00
Desmis
f6aa9b86cb White Balance - temperature correlation in batch mode - issue #6867 (#6877)
* Change Itcwb in simpleprocess

* Change for auto RGBgrey

* remove unnecessary code
2023-12-12 22:15:08 -08:00
Lawrence Lee
d5ba3cf232 Fix crash in noise reduction
Fix upper bound for array access while building histogram of absolute
values in mean absolute deviation (MAD) calculation.

Fixes #6871.
2023-12-12 22:15:07 -08:00
Lawrence Lee
c5bb1f093e Fix issues found by AddressSanitizer
Fix memcpy overlap in TIFF reader.
Fix memory leaks of SpotRows in control spot panel.
Fix memory leaks of SpotRows in locallab.
Fix memory leak of Glib::ThreadPool in file browser entry.
Fix memory leak of Glib::ThreadPool in thumbnail image updater.
2023-11-11 16:56:34 -08:00
Lawrence Lee
f25659307c Calculate focus distance for Nikon Z cameras 2023-11-11 14:57:24 -08:00
Alberto Griggio
e5d389e271 metadata: fixed focus distance computation
A wrong focus distance calculation was affecting lensfun vignetting correction
2023-11-09 21:22:37 -08:00
Lawrence Lee
1ecbd73a4a Update camconst.json from ART
Add color matrix for Canon EOS Rebel SL3 (250D / Kiss X10).
Add masked areas for Canon EOS M6 Mark II and 90D.
Include Canon PowerShot G9 X for values for G5 X and G7 X Mark II.
Add black level for LEICA D-LUX 7.
Include PANASONIC DC-GX880 for values for DC-GF10.
2023-09-24 16:37:29 -07:00
Flössie
dcbc0327a1 Fix UB in ProcParams::load() and the resulting Clang 15+ miscompilation
Fixes #6847.
2023-09-17 15:14:11 -07:00
Lawrence Lee
dab9a3f57e Fix automatic distortion correction crash
Closes #6840.
2023-09-17 15:14:03 -07:00
Lawrence37
f93c3ddf94 Merge pull request #6838 from Lawrence37/canon-various-camconsts
Raw crop and masked areas for a few Canon cameras
2023-09-05 18:32:34 -07:00
Lawrence37
c3a97f0304 Merge pull request #6836 from Lawrence37/ilce-7m4-raw-crop
Raw crop for Sony ILCE-7M4
2023-09-05 18:30:09 -07:00
Lawrence Lee
7c73da7723 Fix Olympus E-M10MarkIV white level
Closes #6236.
2023-09-04 14:31:03 -07:00
Lawrence Lee
408b41dc72 Raw crop and masked areas for a few Canon cameras
- Fix masked areas for EOS RP 1.6x crop mode
- Masked areas for EOS M50, EOS M50m2, and EOS M100 (all the same)
- Raw crop and masked areas for EOS R 1.6x crop mode
2023-09-03 18:03:08 -07:00
Lawrence Lee
6fb8ded886 Add Sony ILCE-7M4 raw crop
Remove 10 columns of bad pixels from the right border.
2023-09-02 22:03:34 -07:00
Lawrence Lee
0fdac3797a Merge branch 'dev' into browser-preview-applied-pparams 2023-08-29 22:58:51 -07:00
Beep6581
e189a1a4ec Merge pull request #6817 from ss23/clang_windows_mingw_64bit_fix
Use `_WIN32` instead of `WIN32` to detect Windows
2023-08-29 00:47:13 +02:00
Beep6581
15144e4cc2 Merge pull request #6703 from Beep6581/om5
OM Digital Solutions OM-5 camconst #6699
2023-08-28 22:51:35 +02:00
Lawrence37
ac48cc55d8 Better use of cache with inpaint opposed highight reconstruction (#6822)
* Speed up preview when inpaint opposed enabled

Only reprocess from raw if the white balance is changed. Otherwise, a
cache from later in the pipeline can be used.

* Remove unused code

* Fix refresh map bit positions

* Make WB & inpaint opposed refresh less brittle

Co-authored-by: Hombre57 <natureh.510@gmail.com>

---------

Co-authored-by: Hombre57 <natureh.510@gmail.com>
2023-08-15 07:52:38 -07:00
Stephen Shkardoon
23f2a2fc9f Use _WIN32 instead of WIN32 to detect Windows
`WIN32` is not defined when building a 64-bit executable on Windows with Clang. `_WIN32` is the more appropriate option here.
http://web.archive.org/web/20191012035921/http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system contains a handy table/matrix of the options and why this is best.
2023-08-13 17:09:49 +12:00
Lawrence Lee
7eb7fb210f Merge branch 'dev' into metadata-exiv2 2023-08-12 15:08:42 -07:00
U-PCSPECIALIST01\jdesm
269e426cc6 Another change to blendmask 2023-08-07 08:48:08 +02:00
U-PCSPECIALIST01\jdesm
8d437fec38 Change range blmask in iplocallab - thanks to hombre 2023-08-07 07:06:55 +02:00
Lawrence37
0052f08e94 Merge pull request #6794 from Lawrence37/auto-dcp-locale-fix
Fix for Auto-matched camera profile detection when using the English (US) language
2023-08-06 14:52:08 -07:00
Lawrence37
ec24613f3b Merge pull request #6778 from Lawrence37/eos-7d-markii-raw-crop
Improved raw crop for Canon EOS 7D Mark II
2023-08-06 14:48:35 -07:00
Lawrence37
7e0f0b6636 Merge pull request #6807 from Lawrence37/ilce-7rm2-pdaf-pattern
Fix PDAF lines pattern for Sony ILCE-7RM2
2023-08-06 12:30:10 -07:00
Lawrence Lee
4faea6df7b Merge branch 'dev' into eos-7d-markii-raw-crop 2023-08-06 11:58:30 -07:00
Lawrence Lee
c5a0067eee Merge branch 'dev' into metadata-exiv2 2023-08-06 10:25:49 -07:00
Desmis
8d0333120e Research and development - WB auto -temperature correlation - tests - finding the optimum settings (#6643)
* Change estimchrom estim hue final

* Itcw observer checkbox

* 8 spectral colors

* 11 spectral colors

* 6 spectral colors

* Small change to correction green

* Fixed various bad behavior - settings itcwb_deltaspec

* 4 spectral colors green

* 3 green spectral colors

* 3 spectral colors green

* 5 spectral colors red green

* 3 spectral colors red green

* 3 spectral colrs green red

* Chnage slider choice deltaE - to size color patch

* display more info in console

* Display more info in console - comment code

* Clean - comment code

* 8 spectral colors green red

* 8 spectral colors blue

* 8 spectral colors blue

* 3 spectral colors

* 6 spectral colors

* 4 spectal colors

* 2 spectral colors

* Eliminate high Y - increse temp iteration - recenter selection inside patch

* compatibility 5.9

* Modify dislay and place selected dats in patch

* Dispaly in console hue chroma image selection

* First optimization

* optimization code - clean unused variables

* Remove sorted in chroma order - some others changes

* 5.9 compatibility

* Clean and optimize code

* Clean code - more display info in console

* More info in console - set itcwb_minsize in option

* Display patch chroma in GUI

* Change some default settings

* Minsize patch GUI

* Display GUI patch size

* Chroma patch variations

* Display in GUI min and max dats found in patch

* Some adjustments

* Remove too low datas in patch

* Various improvment - ponderate

* Clean code colortemp comment spectral datas

* Comment code - correc gren

* Comment and refine code

* Fixed bug in improcoordinator

* fixes a malfunction of AWB bias in improcoordinator

* Various improvments - clean code

* 2 improvments green and find patch

* Allows parametrind ponder and Ypurple in options

* Update autowb - filter on magenta purple

* Clean and optimize code

* Read colors in GUI

* Denoise median 5x5 image datas before Itcwb

* Change to GUI

* Replace median5x5 by 2 median3x3 - clean GUI code

* Work around to recalculate wbauto

* Remove work around - change params->wb related change

* Disabled low_sampling 5.9

* First try for compatibility Low sampling 5.9

* Re-enable WB autogrey

* Change reference image to autogrey if camera settings probably out

* Clean code aand adjust settings camera out

* Format astylert rawimagesource.cc - various small adjustments

* Small correction

* Small green correction

* Change default settings - correction to autowb bias in improccoordinator

* Save provisory work

* Save provisory work 2

* Try to find good tempitc with iterate when temptitc very different 5000K

* Change 2 default settings

* Work around awb temp bias

* Limit work around bias - small other changes

* 3 spectral colors deep blue

* 4 spectral color deep blue

* 4 color spectral yellow

* 5 spectral colors neutral red-magenta

* 5 spectral color neutral red magenta

* Change threshold tempitc

* 5.9 compatibility

* Work around bad claculation Planck's formula

* Fixed bad behavior when using blackbody spectal

* 6 spectral color - checkbutton remove 2 passes

* Fixed various bugs

* Format rawimagesource.cc

* Various improvment before to find the good selection

* First new optimization (perhaps?)

* Display GUI patc deltaE

* Various optimzation and tooltip

* Default observer 2°- Simplify GUI - improve display GUI - remove too low numbers datas

* 4 spectral colors - change 2 settings

* Change calculation threshold 2 passes

* 6 spectral colors magenta

* 13 spectral colors

* Improvment GUI display

* remove checkbutton no_purple

* 2 spectral colors - remove in GUI low sampling 5.9

* Change default setting display in console

* Change behavior when temp near stdA

* 4 spectral colors - settings Itcwb_tempstdA

* Gamut control on image histogram

* Clean code and format rawimagesource.cc

* Comment and format colortemp.cc

* Remove unused fileds from GUI - change tooltips

* Add tooltips

* Various changes

* Change settings when camera temperature is out

* improvment extra and tooltip

* Small change when using auto grey as start reference

* Remove itcwb_fgreen from GUI

* Various change - and 'unsatisfactory' test to take into account Custom

* Change second temp when < 4000 - replace automatic by automatic and refinement

* Neutralize 'Use custom tempertaure and green'

* Green refinement

* Clean code - small changes

* Other clean code

* Added forgotten itcw_green in procparams.cc

* Fixed a bug dispaly deltaE

* Change threshold settings - change code for Custom

* various change in case of using camera settings

* Change way to estimate range green

* clean code and message in console

* Clean and optimize

* Disable 2 passes if custom

* Improve GUI 2 passes

* Increase sampling and number of temperature above 9400K

* Hide AWB temperature bais and green refinement when Custom temerature ans green

* marks out the code with past time markers

* Improve time processing with spectral colors temp calculations

* Replace in console msec by nsec

* Scan temp 5.9

* Change max temp and behavior if temp > 15000k

* Refine temp near 14000K

* Increase sampling temperature 132 to 167

* Increase sampling temperature

* Set in preference choice for itcwb_custom

* White point calculated  with observer instead of table

* More on whitepoint calculation - informations

* Clean and format code with astyle colortemp.cc rawimagesource.cc improccoordinator.cc

* Small change tooltip

* Improve update auto-wb

* Remove 'use custom temperature and tin' - simplify sampling to 2 choice

* Small change to rand AWB bias - green refinement - tooltips

* slightly modify the parameters upstream of the algo - do not use camera in some cases

* Mixed initial green

* Refine init green and temp when no camera

* Refine temp and green in do not use camera settings

* Change tint threshold and various improvments (tooltips, wrong values..)

* Refinment and clean code

* Improve mode No use camera settings

* Init nocam

* Refine use no camera  settings

* Small change

* 5.9 compatibility - and format

* Refine sampling temperature  around 7000 - 8000K

* Format astylert rawimagesource colortemp

* 5.9 settings

* 5.9 settings 2

* Various change - 5.9 - format

* Improve pre and post algorithm

* Fixed correction temp > 8000K

* Fixed bad behavior Tppat.minchroma

* Change sampling choices and tooltip

* Change name wp wp2 wip to wb wb2 iwb to avoid misunderstood

* Small Change settings - limit display studgood to 0.0001

* Improvment display GUI temp

* Change default sampling

* Change ACESP0 to JDCmax

* Improve GUI abstract profile

* Allows dispaly in console xy values thanks to Reffort

* Remove bruce rgb in wp and abstract

* Change wp abstract and save itcwb with dispaly cellxy

* Change prim = 13 improccoordinator iplab2rgb

* remove display datas in console - fixed wrong display Y xyY

* Fixed ifferences in GUI maxhist minhist

* Change limits x y in function sampling

* fixed a dizziness

* Change  after algorithm rule when temp > 6000K

* Harmonize limx limy for oldsampling 5.9

* Added Cam xyz matrix to sampling - thanks to Reffort

* Display in console xyz matrix

* Forgotten instruction when mix camera and autowb grey

* Change rgbloc with Camera matrix Dcraw when no input profile

* Change rep to repref in rgbxyz

* Remove message in console

* 5.9 compat

* 5.9 compat 2

* 5.9 compat 3

* 5.9 compat 4

* 5.9 compat 5 format

* 5.9 compta 6

* Improve code

* Diasble itcwb_sampling in GUI

* Comment code

* Clean and comment code

* 5 spectral colors

* 9 spectral colors

* 2 spectral colors

* Various improvments

* 5 spectral colors

* 5 spectral colors

* First changes review lawrence37

* Second changes review Lawrence37

* 3rd changes review Lawrence37

* 4th changes review Lawrence37

* Change windows and appimage yml

* Re-enable Rtv4_Bruce in procparams.cc

* test for 5.9 compatibility

* Try to fixed crash

* Slightly improve the management of 5.9

* test for 5.9 compatibility by passing parameters via the GUI

* Forgotten parameter

* Change ref_spec limit and remove pac_start for itcwb_sampling

* Puts back the old Planck formula - the same as in dev

* Revert "test for 5.9 compatibility by passing parameters via the GUI"

This reverts commit d6b5a8feda31b93a5574cee6ebf4d3e9d58bbcfb.

* Switch to new ITCWB only when changing WB method

Prevents sudden changing of the white balance if ITCWB is selected and
the image is reopened.

* Fix spelling in comment

* Suggested change from Lawrence37 to whitebalance - small change to improcoordinator

* tempbias Set_sentive(false) if itcwb_smapling - clean whitebalance

* Another clean whitebalance.cc

---------

Co-authored-by: Lawrence Lee <45837045+Lawrence37@users.noreply.github.com>
2023-08-06 13:44:48 +02:00
Jean-Christophe
00fff386c7 Merge pull request #6722 from hfiguiere/crop-leak-6721
Issue #6721 - Fix memory leak in Crop
2023-08-06 12:57:43 +02:00
Lawrence Lee
5c42a50204 Fix PDAF lines pattern for Sony ILCE-7RM2 2023-07-30 14:25:17 -07:00
Lawrence Lee
b0c53be783 Render abstract profile and white level in browser
Enable rendering of abstract profile adjustments in the file browser
thumbnail.

Fix updating of white level in the thumbnail.
2023-07-29 18:39:35 -07:00
Lawrence Lee
6787c53c9b Show black level adjustments in file browser
File browser thumbnails for raw images start with a minimally-processed
images. These images are cached and image adjustments are applied on
top. The black level is "baked-into" the cached image. Therefore, to
reflect the black level adjustments in the thumbnail, one of two options
are required:
    1. Cache an image before the black level is applied and process the
       black level on top of this image.
    2. Recreate the base image with the new black level and cache it.
The first option yields better performance when the user changes the
black level. However, it requires other base adjustments to be applied
every time, such as the camera multipliers. The second option requires
the base image to be recreated every time the black level is changed.
This commit implements the second option. It minimizes code changes, and
therefore possible bugs. It does add a performance penalty when the
black level changes, but the black level adjustment is rarely used.
2023-07-29 17:37:13 -07:00
Michael Jaschob
31bbe91760 Use std::vector Instead of Manually Managed Memory 2023-07-27 14:31:53 -06:00
Michael Jaschob
5b2811f42b Allocate on Heap, Not Stack, in gaussVertical and Friends 2023-07-22 22:20:29 -06:00
Lawrence Lee
6f50b68fa7 Consider raw border with CA avoid color shift 2023-07-16 16:17:57 -07:00
Lawrence Lee
ab2cc4ba45 Fix auto DCP detection when using US English
For systems where the locale is not English but the language in
preferences is manually set to "English (US)", the Color Management
Auto-matched camera profile option is not selectable even if a DCP
exists for the camera. This is because the Glib::ustring
casefold_collate_key() method returns a locale-dependent value. When
initializing the list of DCP files, the system locale is used. When
finding a matching DCP profile for an image, a different locale is used
because the LANG environment variable is set while initializing the
RawTherapee GUI language.
2023-07-15 18:36:26 -07:00
Lawrence37
b68a6e9581 Merge pull request #6790 from luzpaz/typos
Fix various typos
2023-07-12 21:22:54 -07:00
luzpaz
b0ebab8e08 Fix various typos
Found via `codespell -q 3 -S ./rtdata/languages -L activ,alph,ba,bloc,bord,chang,childs,currentry,dof,dum,fo,hist,inout,invers,lonly,makro,ois,pres,preserv,portugues,rady,reall,redy,struc,tbe,thre,trough,vart,vekto`
2023-07-05 13:51:11 +00:00