Film negative processing: first usable version. Only supports bayer raw files, thumbnails don't work

Added performance improvements suggested by heckflosse. Lowered median sampling step from 7 to 5 since calculation is now much faster.

Added support for Fuji X-Trans raw files.

Applied SSE2 patch provided by @heckflosse, improves performance in main processing loop.

Moved film negative processing stuff in its own compilation unit.

Code cleanup: removed redundant omp directives.

Added check for dead pixels, going above threshold after inversion. ST_BAYER only for now.

Reverted leftover hack in cropwindow.cc
This commit is contained in:
rom9
2019-06-04 21:31:03 +02:00
parent 3b19b9f55b
commit 9df8008949
32 changed files with 1033 additions and 2 deletions

View File

@@ -82,6 +82,7 @@
#include "softlight.h"
#include "dehaze.h"
#include "guiutils.h"
#include "filmnegative.h"
class ImageEditorCoordinator;
@@ -97,7 +98,8 @@ class ToolPanelCoordinator :
public CropPanelListener,
public ICMPanelListener,
public ImageAreaToolListener,
public rtengine::ImageTypeListener
public rtengine::ImageTypeListener,
public FilmNegProvider
{
protected:
WhiteBalance* whitebalance;
@@ -152,6 +154,7 @@ protected:
XTransRAWExposure* xtransrawexposure;
FattalToneMapping *fattal;
MetaDataPanel* metadata;
FilmNegative* filmNegative;
std::vector<PParamsChangeListener*> paramcListeners;
@@ -288,6 +291,9 @@ public:
rtengine::RawImage* getFF() override;
Glib::ustring GetCurrentImageFilePath() override;
// FilmNegProvider interface
bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, float* newExps) override;
// rotatelistener interface
void straightenRequested () override;
void autoCropRequested () override;