資源簡介
opencv-contrib 編譯過程中缺失的vgg_generated_120.i等文件,復制在/home/****/opencv-3.4.2/modules/xfeatures2d/src目錄下。
代碼片段和文件信息
//============================================================================
//?Name????????:?OpenEXRimages_HDR_Retina_toneMapping.cpp
//?Author??????:?Alexandre?Benoit?(benoit.alexandre.vision@gmail.com)
//?Version?????:?0.1
//?Copyright???:?Alexandre?Benoit?LISTIC?Lab?july?2011
//?Description?:?HighDynamicRange?retina?tone?mapping?with?the?help?of?the?Gipsa/Listic‘s?retina?in?C++?Ansi-style
//============================================================================
#include?
#include?
#include?“opencv2/bioinspired.hpp“?//?retina?based?algorithms
#include?“opencv2/imgproc.hpp“?//?cvCvtcolor?function
#include?“opencv2/imgcodecs.hpp“?//?imread
#include?“opencv2/highgui.hpp“?//?display
static?void?help(std::string?errorMessage)
{
std::cout<<“Program?init?error?:?“< std::cout<<“\nProgram?call?procedure?:?./OpenEXRimages_HDR_Retina_toneMapping?[OpenEXR?image?to?process]“< 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::cout<<“\nExamples:“< std::cout<<“\t-Image?processing?:?./OpenEXRimages_HDR_Retina_toneMapping?memorial.exr“< }
//?simple?procedure?for?1D?curve?tracing
static?void?drawPlot(const?cv::Mat?curve?const?std::string?figuretitle?const?int?lowerLimit?const?int?upperLimit)
{
//std::cout<<“curve?size(hw)?=?“< cv::Mat?displayedCurveImage?=?cv::Mat::ones(200?curve.size().height?CV_8U);
cv::Mat?windowNormalizedCurve;
normalize(curve?windowNormalizedCurve?0?200?cv::NORM_MINMAX?CV_32F);
displayedCurveImage?=?cv::Scalar::all(255);?//?set?a?white?background
int?binW?=?cvRound((double)displayedCurveImage.cols/curve.size().height);
for(?int?i?=?0;?i? rectangle(?displayedCurveImage?cv::Point(i*binW?displayedCurveImage.rows)
cv::Point((i+1)*binW?displayedCurveImage.rows?-?cvRound(windowNormalizedCurve.at(i)))
cv::Scalar::all(0)?-1?8?0?);
rectangle(?displayedCurveImage?cv::Point(0?0)
cv::Point((lowerLimit)*binW?200)
cv::Scalar::all(128)?-1?8?0?);
rectangle(?displayedCurveImage?cv::Point(displayedCurveImage.cols?0)
cv::Point((upperLimit)*binW?200)
cv::Scalar::all(128)?-1?8?0?);
cv::imshow(figuretitle?displayedCurveImage);
}
/*
?*?objective?:?get?the?gray?level?map?of?the?input?image?and?rescale?it?to?the?range?[0-255]
?*/
static?void?rescaleGrayLevelMat(const?cv::Mat?&inputMat?cv::Mat?&outputMat?const?float?histogramClippingLimit)
{
//?adjust?output?matrix?wrt?the?input?size?but?single?channel
std::cout<<“Input?image?rescaling?with?histogram?edges?cutting?(in?order?to?eliminate?bad?pixels?created?during?the?HDR?image?creation)?:“< //std::cout<<“=>?image?size?(h
評論
共有 條評論