enhanced basic error management when input image could not be loaded
This commit is contained in:
parent
fba70ca131
commit
cd8d3afe37
@ -18,7 +18,7 @@ void help(std::string errorMessage)
|
|||||||
std::cout<<"\nProgram call procedure : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping [OpenEXR image to process]"<<std::endl;
|
std::cout<<"\nProgram call procedure : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping [OpenEXR image to process]"<<std::endl;
|
||||||
std::cout<<"\t[OpenEXR image to process] : the input HDR image to process, must be an OpenEXR format, see http://www.openexr.com/ to get some samples or create your own using camera bracketing and Photoshop or equivalent software for OpenEXR image synthesis"<<std::endl;
|
std::cout<<"\t[OpenEXR image to process] : the input HDR image to process, must be an OpenEXR format, see http://www.openexr.com/ to get some samples or create your own using camera bracketing and Photoshop or equivalent software for OpenEXR image synthesis"<<std::endl;
|
||||||
std::cout<<"\nExamples:"<<std::endl;
|
std::cout<<"\nExamples:"<<std::endl;
|
||||||
std::cout<<"\t-Image processing : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping KernerEnvLatLong.exr"<<std::endl;
|
std::cout<<"\t-Image processing : ./OpenEXRimages_HighDynamicRange_Retina_toneMapping memorial.exr"<<std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
// simple procedure for 1D curve tracing
|
// simple procedure for 1D curve tracing
|
||||||
@ -104,7 +104,7 @@ void drawPlot(const cv::Mat curve, const std::string figureTitle, const int lowe
|
|||||||
<<"\n\t"<<histogramClippingLimit*100<<"% index = "<<histLowerLimit<<" => normalizedHist value = "<<denseProb.at<float>(histLowerLimit)<<" => input gray level = "<<minInputValue
|
<<"\n\t"<<histogramClippingLimit*100<<"% index = "<<histLowerLimit<<" => normalizedHist value = "<<denseProb.at<float>(histLowerLimit)<<" => input gray level = "<<minInputValue
|
||||||
<<"\n\t"<<(1-histogramClippingLimit)*100<<"% index = "<<histUpperLimit<<" => normalizedHist value = "<<denseProb.at<float>(histUpperLimit)<<" => input gray level = "<<maxInputValue
|
<<"\n\t"<<(1-histogramClippingLimit)*100<<"% index = "<<histUpperLimit<<" => normalizedHist value = "<<denseProb.at<float>(histUpperLimit)<<" => input gray level = "<<maxInputValue
|
||||||
<<std::endl;
|
<<std::endl;
|
||||||
drawPlot(denseProb, "input histogram density probability", histLowerLimit, histUpperLimit);
|
//drawPlot(denseProb, "input histogram density probability", histLowerLimit, histUpperLimit);
|
||||||
drawPlot(normalizedHist, "input histogram", histLowerLimit, histUpperLimit);
|
drawPlot(normalizedHist, "input histogram", histLowerLimit, histUpperLimit);
|
||||||
|
|
||||||
// rescale image range [minInputValue-maxInputValue] to [0-255]
|
// rescale image range [minInputValue-maxInputValue] to [0-255]
|
||||||
@ -132,7 +132,7 @@ void drawPlot(const cv::Mat curve, const std::string figureTitle, const int lowe
|
|||||||
void callBack_updateRetinaParams(int, void*)
|
void callBack_updateRetinaParams(int, void*)
|
||||||
{
|
{
|
||||||
|
|
||||||
retina->setupOPLandIPLParvoChannel(true, true, (double)localAdaptation_photoreceptors/200.0, 0.5, 0.43, (double)retinaHcellsGain, 1, 7, (double)localAdaptation_Gcells/200.0);
|
retina->setupOPLandIPLParvoChannel(true, true, (double)localAdaptation_photoreceptors/200.0, 0.5, 0.43, (double)retinaHcellsGain, 1.0, 7.0, (double)localAdaptation_Gcells/200.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int colorSaturationFactor;
|
int colorSaturationFactor;
|
||||||
@ -184,7 +184,12 @@ void drawPlot(const cv::Mat curve, const std::string figureTitle, const int lowe
|
|||||||
// image processing case
|
// image processing case
|
||||||
// declare the retina input buffer... that will be fed differently in regard of the input media
|
// declare the retina input buffer... that will be fed differently in regard of the input media
|
||||||
inputImage = cv::imread(inputImageName, -1); // load image in RGB mode
|
inputImage = cv::imread(inputImageName, -1); // load image in RGB mode
|
||||||
|
std::cout<<"=> image size (h,w) = "<<inputImage.size().height<<", "<<inputImage.size().width<<std::endl;
|
||||||
|
if (!inputImage.total())
|
||||||
|
{
|
||||||
|
help("could not load image, program end");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
// rescale between 0 and 1
|
// rescale between 0 and 1
|
||||||
normalize(inputImage, inputImage, 0.0, 1.0, cv::NORM_MINMAX);
|
normalize(inputImage, inputImage, 0.0, 1.0, cv::NORM_MINMAX);
|
||||||
cv::Mat gammaTransformedImage;
|
cv::Mat gammaTransformedImage;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user