Commit Graph

2162 Commits

Author SHA1 Message Date
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
Lawrence
72dfa1b242 Add auto perspective correction to GUI
Add three buttons for correcting pitch, yaw, or both. Horizontal and/or
vertical tilt adjusters are updated with the automatically computed
values.
2020-01-18 14:32:03 -08:00
Desmis
01fbc2eddf Suppress interaction between wavelet and tone-mapping 2020-01-12 08:03:52 +01:00
Desmis
d8564cb652 another fix for wavelet <=> tone mapping 2020-01-11 16:25:50 +01:00
Desmis
2ff619e5e2 Fixed bad behavior gamma slider tone-mapping 2020-01-11 08:23:15 +01:00
Ingo Weyrich
c6f021dcc9 Merge pull request #5589 from Beep6581/logtransform
Applying geometric transformations leads to dark artifacts in combina…
2020-01-06 20:52:22 +01:00
Ingo Weyrich
5252836503 filterpanel: make full use of the screen vertical space, copied from ART 2020-01-04 11:28:05 +01:00
Ingo Weyrich
7c2aa2405b Startup crashes in LensProfilePanel::LFDbHelper, fixes #5577, thanks to @dlichtenberger for the fix 2020-01-02 23:01:37 +01:00
Ingo Weyrich
49d594f67a Log transform: add method combobox 2020-01-02 19:28:57 +01:00
Lawrence
f83a62be5b Add back the old perspective tool
Add perspective correction method chooser to allow choice between the
original perspective tool (simple) and the new one (camera-based).
2019-12-28 17:18:59 -08:00
Ingo Weyrich
a62b0f8040 Use gtk_show_uri, fixes #5578, thanks to @Floessie for the patch 2019-12-28 13:05:18 +01:00
Lawrence
f514a69104 Group perspective adjusters in frames
Divide perspective correction adjusters into three groups: camera
attributes, post-correction adjustments, and perspective distortion
recovery.
2019-12-27 20:50:18 -08:00
Lawrence
f9a8875bb5 Add more perspective correction adjusters
Add camera lens/sensor shift support with horizontal/vertical shift
adjusters.

Add shifting and rotation of corrected image. This allows
post-correction adjustments to be made more easily given the fixed image
canvas size.

Add scaling of final result. This also helps reduce frustrations with
the fixed image canvas size.

Replace field of view with focal length and crop factor. Use of focal
length and crop factor is more common than diagonal angular field of
view. The new adjusters should be more intuitive for most photographers.
The implementation of perspective correction uses a focal length
relative to the image dimensions. The existing code calculates that
focal length with trigonometry. The new code does it by multiplying
by a ratio.

Replace vertical bias with horizontal and vertical perspective
distortion recovery. Vertical bias is not intuitive as it causes
vertical lines to converge off-center if horizontal correction is
applied. The new adjusters perform perspective distortion on the
projection of the corrected image, allowing vertical/horizontal lines to
converge towards the center lines of the image.

Refactor perspective transformation math to use dynamically computed
homogeneous coordinate matrices instead of pre-calculated formulas. This
should add some overhead, but results in more maintainable code and
possible improved performance due to the reduced number of arithmetic
and assignments needed for each pixel.

Integrate new adjusters in the GUI. This includes fine granularity for
batch processing add/set modes and history.
2019-12-27 16:40:41 -08:00
Beep6581
73655b6099 Merge pull request #5567 from Beep6581/help-btn
Added help button to main menu #5566
2019-12-20 19:59:06 +01:00
luz.paz
7f425e7fe6 Found a few more typos 2019-12-20 06:07:52 -05:00
luz.paz
765499bf55 Fix doxygen typo and other various typos 2019-12-19 20:46:35 -05:00
Lawrence
f4c37598ee Generalize perspective correction
Revise perspective transformation to remove hard-coded angular field of
view and horizontal perspective axis of rotation. Add vertical bias
parameter to retain ability to perform vertical perspective
transformation independent of the horizontal perspective axis of
rotation. Add field of view parameter as a tentative method for
specifying angular field of view.

The current implementation of perspective transformation applies
horizontal perspective transformation in such a way that preserves the
orientation of a horizontal line going through the center of the image.
In common use cases, horizontal lines such as the horizon do not go
through the center of the image. In such cases, the horizontal
perspective axis of rotation should not be parallel to the image's
y-axis. This commit makes the axis of rotation dependent on the vertical
parameter.

The two axes of rotation should be placed at the appropriate distance
from the image in order to prevent stretched or compressed proportions.
In the current implementation, the axes are at a fixed relative distance
from the image. This commit adds the ability to specify the distance in
the form of the diagonal angular field of view.
2019-12-18 10:22:05 -08:00
Morgan Hardwood
56de2e7a07 Help button - new icon, simplified code #5567 2019-12-17 10:38:04 +01:00
Ingo Weyrich
abac9856e7 Apply internal default profile (neutral) instead of user defined default profiles for missing parts of existing profile when loading a raw file which already has a .pp3, fixes #5564 2019-12-17 00:44:01 +01:00
Morgan Hardwood
9a0cae0357 Clear progress bar when opening in external editor
The last step remained visible in the progress bar when invoking the external editor.

Fixes #5475
2019-12-16 23:47:54 +01:00
Morgan Hardwood
d6f65dc8e2 Added help button to main menu #5566
Opens RawPedia in the default URI handler
2019-12-16 23:43:09 +01:00
Ingo Weyrich
4a25633bd7 Do not gray out adjusters when automatic is enabled, fixes #5565 2019-12-16 14:35:40 +01:00
Flössie
5852ee02b9 Make LFDatabase::findModifier() non-static 2019-12-02 08:20:25 +01:00
Ingo Weyrich
3748133cd2 Fix some vavorite tab issues 2019-11-30 22:19:33 +01:00
Ingo Weyrich
04b08741ee Further cleanups 2019-11-27 18:55:20 +01:00
Ingo Weyrich
79431ffa1d Some changes suggested by @Floessie 2019-11-26 19:42:48 +01:00
Ingo Weyrich
2a4891827d Some cleanups 2019-11-26 15:25:11 +01:00
Ingo Weyrich
ff9eeb4744 Capture Sharpening missing from Parameters to save partial processing profile dialog box, fixes #5487 2019-11-21 18:09:14 +01:00
Ingo Weyrich
3be7016517 Capture sharpening: Remove range adjuster and introduce 2019-11-13 21:05:24 +01:00
Ingo Weyrich
e525f5bec1 Capture sharpening: added range-adjuster to exclude bright areas from sharpening 2019-11-12 14:37:15 +01:00
Ingo Weyrich
d32c570383 Capture sharpening: removed gamma 2019-11-10 16:05:24 +01:00
Ingo Weyrich
587652283d further reduction of include dependencies, also finalised some classes 2019-11-09 16:51:54 +01:00
Ingo Weyrich
e5258e6f60 reduce rtgui/inspector.h dependencies 2019-11-08 20:22:18 +01:00
Ingo Weyrich
e7cbca7d4f Merge branch 'dev' into reduce-include-dependencies 2019-11-03 21:40:27 +01:00
Ingo Weyrich
e66ed090a7 remove two accidently committed files 2019-11-03 14:53:57 +01:00
Ingo Weyrich
6335b68a80 Further reduction of include dependencies 2019-11-03 14:52:42 +01:00
Ingo Weyrich
b3b1008270 Further reduction of include dependencies 2019-11-02 17:29:26 +01:00
Ingo Weyrich
afeca7f5f9 Fix lgtm issues 2019-11-02 00:18:48 +01:00
Ingo Weyrich
f02f5c4a69 Fix two lgtm issues 2019-11-01 22:57:20 +01:00
Ingo Weyrich
c1f9120ef4 Further reduction of include dependencies 2019-11-01 21:20:52 +01:00
Ingo Weyrich
b58d38fc62 Fix clang warnings 2019-11-01 17:17:29 +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
962f81f6bc Further reduction of include dependencies 2019-11-01 12:51:08 +01:00
Ingo Weyrich
785273e7bf Further reduction of include dependencies 2019-11-01 01:03:30 +01:00
Ingo Weyrich
cac2eb53ef Further reduction of include dependencies 2019-10-31 20:41:08 +01:00
Ingo Weyrich
284fe57159 Further reduction of include dependencies 2019-10-31 13:29:12 +01:00
Flössie
add5c790d6 #pragma once for our headers plus drive-by formatting 2019-10-31 10:20:50 +01:00
Flössie
aacea7046c Fix Clang warnings plus some cleanups 2019-10-31 08:56:38 +01:00