Merge branch 'dev' into spot-removal-tool
This commit is contained in:
@@ -279,6 +279,18 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
imgsrc->getRAWHistogram(histRedRaw, histGreenRaw, histBlueRaw);
|
||||
|
||||
highDetailPreprocessComputed = highDetailNeeded;
|
||||
|
||||
// After preprocess, run film negative processing if enabled
|
||||
if (
|
||||
(todo & M_RAW)
|
||||
&& (
|
||||
imgsrc->getSensorType() == ST_BAYER
|
||||
|| imgsrc->getSensorType() == ST_FUJI_XTRANS
|
||||
)
|
||||
&& params->filmNegative.enabled
|
||||
) {
|
||||
imgsrc->filmNegativeProcess(params->filmNegative);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -802,7 +814,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
ipf.labColorCorrectionRegions(nprevl);
|
||||
|
||||
if ((params->colorappearance.enabled && !params->colorappearance.tonecie) || (!params->colorappearance.enabled)) {
|
||||
ipf.EPDToneMap(nprevl, 5, scale);
|
||||
ipf.EPDToneMap(nprevl, 0, scale);
|
||||
}
|
||||
|
||||
// for all treatments Defringe, Sharpening, Contrast detail , Microcontrast they are activated if "CIECAM" function are disabled
|
||||
@@ -946,7 +958,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange)
|
||||
CAMBrightCurveJ.dirty = true;
|
||||
CAMBrightCurveQ.dirty = true;
|
||||
|
||||
ipf.ciecam_02float(ncie, float (adap), pW, 2, nprevl, params.get(), customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, scale, execsharp, d, dj, yb, 1);
|
||||
ipf.ciecam_02float(ncie, float (adap), pW, 2, nprevl, params.get(), customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 0 , scale, execsharp, d, dj, yb, 1);
|
||||
|
||||
if ((params->colorappearance.autodegree || params->colorappearance.autodegreeout) && acListener && params->colorappearance.enabled) {
|
||||
acListener->autoCamChanged(100.* (double)d, 100.* (double)dj);
|
||||
@@ -1279,6 +1291,31 @@ void ImProcCoordinator::getSpotWB(int x, int y, int rect, double& temp, double&
|
||||
}
|
||||
}
|
||||
|
||||
bool ImProcCoordinator::getFilmNegativeExponents(int xA, int yA, int xB, int yB, std::array<float, 3>& newExps)
|
||||
{
|
||||
MyMutex::MyLock lock(mProcessing);
|
||||
|
||||
const auto xlate =
|
||||
[this](int x, int y) -> Coord2D
|
||||
{
|
||||
const std::vector<Coord2D> points = {Coord2D(x, y)};
|
||||
|
||||
std::vector<Coord2D> red;
|
||||
std::vector<Coord2D> green;
|
||||
std::vector<Coord2D> blue;
|
||||
ipf.transCoord(fw, fh, points, red, green, blue);
|
||||
|
||||
return green[0];
|
||||
};
|
||||
|
||||
const int tr = getCoarseBitMask(params->coarse);
|
||||
|
||||
const Coord2D p1 = xlate(xA, yA);
|
||||
const Coord2D p2 = xlate(xB, yB);
|
||||
|
||||
return imgsrc->getFilmNegativeExponents(p1, p2, tr, params->filmNegative, newExps);
|
||||
}
|
||||
|
||||
void ImProcCoordinator::getAutoCrop(double ratio, int &x, int &y, int &w, int &h)
|
||||
{
|
||||
|
||||
|
Reference in New Issue
Block a user