58 Commits

Author SHA1 Message Date
Lawrence Lee
a3d3457bfd
Fix data loading of manually selected Lensfun lens
Remove requirement that the lens mount matches the camera mount. This
allows adapted lenses to work. Matching the lens mount isn't even
necessary because the make and model names together should be unique.
2025-05-25 15:31:08 -07:00
Lawrence37
6d41f20587
Lensfun automatic detection speedup (#7318)
* Speed up LensFun automatic detection

Replace use of std::regex with manual string manipulation.
std::regex is slow for some locales, such as for Chinese or Japanese.

* Fix typo in comment
2025-02-26 22:17:31 -08: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
Lawrence37
4c52d970bb
Merge pull request #7065 from Lawrence37/lensfun-lens-crop-factor
Lensfun lens selection using camera crop factor
2024-06-22 18:59:31 -07:00
Lawrence Lee
068420da60
Use camera crop factor to select Lensfun lens 2024-05-02 22:12:44 -07:00
Lawrence Lee
4e57202bf6
Improve Lensfun auto lens matching
Handle lens names with spaces surrounding dashes.
2024-03-31 17:43:04 -07:00
Lawrence Lee
1efa06e887
Fix Lensfun camera mismatch
Work around a Lensfun bug that finds the wrong camera when given an
exact name of certain cameras.
2023-10-14 21:18:04 -07:00
Lawrence Lee
a618efe782
Fix Lensfun corrections not available
Also search by exact match of lens model and name.
2023-09-03 15:30:42 -07:00
Ingo Weyrich
a30dca0b0e Profiled lens correction: Do not call lensfun search with empty strings 2020-10-13 13:27:20 +02: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
Ingo Weyrich
a2b0167339 Fix broken non OMP build 2019-12-02 19:46:00 +01:00
Ingo Weyrich
f95acfe74e Multithread lensfun vignetting correction 2019-12-02 17:32:13 +01:00
Flössie
5852ee02b9 Make LFDatabase::findModifier() non-static 2019-12-02 08:20:25 +01:00
Ingo Weyrich
92e6768bee Improve caching of lensfun mismatches 2019-11-29 15:19:34 +01:00
Ingo Weyrich
b8dcd93a6a Reduce searches for lensfun data if there is no entry for the combo of camera and lens 2019-11-29 13:09:37 +01:00
Flössie
aacea7046c Fix Clang warnings plus some cleanups 2019-10-31 08:56:38 +01:00
Ingo Weyrich
20726d5bfe Forward declare Imagefloat 2019-10-28 20:01:16 +01:00
Morgan Hardwood
60b2196bce Updated gnu.org links to use HTTPS 2019-09-10 12:34:57 +02:00
Ingo Weyrich
41fc34c5c6 Do not assign empty strings on creation of std::string or Glib::ustring 2019-07-31 20:21:16 +02:00
Flössie
0cbc4923bc Relax dependency from procparams.h 2019-02-28 20:44:50 +01:00
heckflosse
6074fe3be4 Do not search lensfun modifier if make, model or lens is empty, #4985 2018-11-15 17:16:55 +01:00
George Hilliard
5081c85f26 Fix leak of heap-allocated mutexes 2018-11-02 03:07:07 -05:00
Hombre
ca4f0e5239 Add mutex to the Lensfun library access.
(try to fix #4580)
2018-07-14 15:52:43 +02:00
Alberto Griggio
19281eedd1 merge branch 'lensprofile-ca-correction' into 'dev' 2017-11-14 22:53:27 +01:00
Ingo Weyrich
5946a00511
Merge pull request #4176 from Beep6581/extraclean
get rt cleaner when built using -Wextra #4155
2017-11-11 18:06:00 +01:00
Alberto Griggio
dd6e411c13 lensfun: improved logic for handling fixed-lens cameras
Fixes #4161
2017-10-31 09:02:37 +01:00
Alberto Griggio
5a05b04e09 profile-based CA correction applied during 1:1 preview 2017-10-29 21:41:19 +01:00
Alberto Griggio
830fd6fdbb added support for CA correction via lensfun
Performance could be improved (see the comments marked "agriggio" in iptransform.cc and rtlensfun.cc)
2017-10-26 23:55:52 +02:00
heckflosse
f3690d00ac Make compilation unit rtengine/rtlensfun.cc -Wextra clean, #4155 2017-10-25 17:36:43 +02:00
Alberto Griggio
6f3d5688d8 Fixed bug in finding lensfun lens when maker name consists of multiple words 2017-10-19 16:03:33 +02:00
Hombre57
8cef3c5e2f Merge branch 'dev' into multiframe-handling 2017-09-17 15:04:29 +02:00
Hombre57
0905294bda Merge branch 'dev' into multiframe-handling, with some merge bugfix 2017-09-17 01:15:51 +02:00
Alberto Griggio
7ee485e89c Make LENSFUN_HAS_LOAD_DIRECTORY test actually succeed when it should 2017-09-17 00:18:33 +02:00
heckflosse
597c4fbaa1 Merge branch 'lenscorrectiongui' into dev 2017-09-16 19:18:04 +02:00
Alberto Griggio
a467246834 fix compilation failure when using lensfun 0.2.x
Fixes #4085
2017-09-16 10:54:00 +02:00
heckflosse
818200522a Fix some inconsistencies in Profiled Lens Correction gui 2017-09-15 20:11:49 +02:00
heckflosse
be2b1ed043 Use LoadDirectory() instead of Load() when dbdir is not empty 2017-09-14 13:53:03 +02:00
heckflosse
a515329bac Don't pass nullptr to lensfun Load() 2017-09-14 13:24:19 +02:00
Alberto Griggio
008f280e29 lensfun: added possibility to use a private copy of the LF database 2017-09-14 11:34:41 +02:00
Alberto Griggio
5b3d60bf56 lensfun: applied Floessie's workaround for locale conversion issues 2017-09-14 10:42:01 +02:00
Flössie
f2853d8742 Some little cleanups to rtlensfun.*
- Sanitize `std::unique_ptr<>` handling
- Use `NonCopyable`
- Employ `explicit operator bool()`
- Correct use of `std::vector::emplace_back()`
- Cleanup includes
- Streamline implementation order
2017-09-12 20:58:20 +02:00
Alberto Griggio
2d1cca8cbb disable vignetting or distortion correction checkboxes if the selected lensfun profile doesn't support them
Patch by heckflosse
2017-09-12 16:41:25 +02:00
Alberto Griggio
ea5f8c3beb profile lens correction: show a warning if the lens profile has a crop factor greater than the selected camera 2017-09-12 08:25:45 +02:00
Alberto Griggio
e4ba4d19f5 made lensfun-based correction compatible with auto fill mode 2017-09-10 22:02:43 +02:00
Alberto Griggio
0761499557 lensfun: fixed bug in auto-matching of some fixed-lens cameras (e.g. nikon coolpix) 2017-09-10 12:22:36 +02:00
Alberto Griggio
0f197bf1a4 lensfun: properly group lenses by maker in the UI 2017-09-09 22:31:59 +02:00
Alberto Griggio
0c0f3d146d lensfun: take the focal length from the lens (if a prime) when there is no exif info about it 2017-09-09 18:41:47 +02:00
Alberto Griggio
13c4b0c284 one more refinement to the lensfun automatching logic
hopefully this is the good one :-)
2017-09-09 09:53:57 +02:00
Alberto Griggio
66979d290a lensfun: further tweaks on the matching logic and the UI 2017-09-09 00:54:28 +02:00