changed signature of ImProcFunctions::transform to take as input an ImageMetaData pointer

This commit is contained in:
Alberto Griggio
2017-09-06 00:15:41 +02:00
parent f7b857eb9e
commit b4d3caf9c6
10 changed files with 81 additions and 29 deletions

View File

@@ -954,9 +954,19 @@ IImage8* Thumbnail::quickProcessImage (const procparams::ProcParams& params, int
}
// Full thumbnail processing, second stage if complete profile exists
IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rheight, TypeInterpolation interp, std::string camName,
double focalLen, double focalLen35mm, float focusDist, float shutter, float fnumber, float iso, std::string expcomp_, double& myscale)
// IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rheight, TypeInterpolation interp, std::string camName,
// double focalLen, double focalLen35mm, float focusDist, float shutter, float fnumber, float iso, std::string expcomp_, double& myscale)
IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rheight, TypeInterpolation interp, const ImageMetaData *metadata, double& myscale)
{
std::string camName = metadata->getCamera();
double focalLen = metadata->getFocalLen();
double focalLen35mm = metadata->getFocalLen35mm();
float focusDist = metadata->getFocusDist();
float shutter = metadata->getShutterSpeed();
float fnumber = metadata->getFNumber();
float iso = metadata->getISOSpeed();
float fcomp = metadata->getExpComp();
// check if the WB's equalizer value has changed
if (wbEqual < (params.wb.equal - 5e-4) || wbEqual > (params.wb.equal + 5e-4) || wbTempBias < (params.wb.tempBias - 5e-4) || wbTempBias > (params.wb.tempBias + 5e-4)) {
wbEqual = params.wb.equal;
@@ -1079,7 +1089,8 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei
int origFH;
double tscale = 0.0;
getDimensions (origFW, origFH, tscale);
ipf.transform (baseImg, trImg, 0, 0, 0, 0, fw, fh, origFW * tscale + 0.5, origFH * tscale + 0.5, focalLen, focalLen35mm, focusDist, fnumber, 0, true); // Raw rotate degree not detectable here
// ipf.transform (baseImg, trImg, 0, 0, 0, 0, fw, fh, origFW * tscale + 0.5, origFH * tscale + 0.5, focalLen, focalLen35mm, focusDist, fnumber, 0, true); // Raw rotate degree not detectable here
ipf.transform (baseImg, trImg, 0, 0, 0, 0, fw, fh, origFW * tscale + 0.5, origFH * tscale + 0.5, metadata, 0, true); // Raw rotate degree not detectable here
delete baseImg;
baseImg = trImg;
}
@@ -1278,11 +1289,11 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, int rhei
float fnum = fnumber;// F number
float fiso = iso;// ISO
float fspeed = shutter;//speed
char * writ = new char[expcomp_.size() + 1];//convert expcomp_ to char
std::copy (expcomp_.begin(), expcomp_.end(), writ);
writ[expcomp_.size()] = '\0';
float fcomp = atof (writ); //compensation + -
delete[] writ;
// char * writ = new char[expcomp_.size() + 1];//convert expcomp_ to char
// std::copy (expcomp_.begin(), expcomp_.end(), writ);
// writ[expcomp_.size()] = '\0';
// float fcomp = atof (writ); //compensation + -
// delete[] writ;
float adap;
if (fnum < 0.3f || fiso < 5.f || fspeed < 0.00001f)