From: <hug...@li...> - 2010-09-25 14:14:37
|
branch: details: http://hugin.hg.sourceforge.net/hgweb/hugin/hugin/hgrepo/h/hu/hugin/hugin/rev/a2494433b572 changeset: 4412:a2494433b572 user: tmodes date: Sat Sep 25 16:14:08 2010 +0200 description: Fixes vignetting correction in fulla [3057742] diffstat: src/hugin_base/panodata/image_variables.h | 2 +- src/hugin_base/vigra_ext/utils.h | 2 ++ src/tools/fulla.cpp | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diffs (48 lines): diff -r 803e12f97a13 -r a2494433b572 src/hugin_base/panodata/image_variables.h --- a/src/hugin_base/panodata/image_variables.h Sat Sep 25 14:22:23 2010 +0100 +++ b/src/hugin_base/panodata/image_variables.h Sat Sep 25 16:14:08 2010 +0200 @@ -70,7 +70,7 @@ // colour response variables image_variable( ResponseType, HuginBase::BaseSrcPanoImage::ResponseType, RESPONSE_EMOR ) image_variable( EMoRParams, std::vector<float>, std::vector<float>(5, 0.0) ) -image_variable( ExposureValue, double, 1.0 ) +image_variable( ExposureValue, double, 0.0 ) image_variable( Gamma, double, 1.0 ) image_variable( WhiteBalanceRed, double, 1.0 ) image_variable( WhiteBalanceBlue, double, 1.0 ) diff -r 803e12f97a13 -r a2494433b572 src/hugin_base/vigra_ext/utils.h --- a/src/hugin_base/vigra_ext/utils.h Sat Sep 25 14:22:23 2010 +0100 +++ b/src/hugin_base/vigra_ext/utils.h Sat Sep 25 16:14:08 2010 +0200 @@ -622,11 +622,13 @@ { vigra::Diff2D destSize = src_lowerright - src_upperleft; + int offsetX=ul.x; for(; src_upperleft.y < src_lowerright.y; ++src_upperleft.y, ++dest_upperleft.y, ++ul.y) { typename SrcImageIterator::row_iterator s(src_upperleft.rowIterator()); typename SrcImageIterator::row_iterator send(s+ destSize.x); typename DestImageIterator::row_iterator d(dest_upperleft.rowIterator()); + ul.x=offsetX; for(; s != send; ++s, ++d, ++ul.x) { da.set(f(sa(s), ul), d); } diff -r 803e12f97a13 -r a2494433b572 src/tools/fulla.cpp --- a/src/tools/fulla.cpp Sat Sep 25 14:22:23 2010 +0100 +++ b/src/tools/fulla.cpp Sat Sep 25 16:14:08 2010 +0200 @@ -394,12 +394,13 @@ if( (src.getVigCorrMode() & SrcPanoImage::VIGCORR_FLATFIELD) || (src.getVigCorrMode() & SrcPanoImage::VIGCORR_RADIAL) ) { + src.setResponseType(HuginBase::SrcPanoImage::RESPONSE_LINEAR); Photometric::InvResponseTransform<SrcPixelType,SrcPixelType> invResp(src); - invResp.enforceMonotonicity(); + invResp.enforceMonotonicity(); if (src.getVigCorrMode() & SrcPanoImage::VIGCORR_FLATFIELD) { invResp.setFlatfield(&srcFlat); } - vigra_ext::transformImageSpatial(srcImageRange(srcImg), destImage(srcImg), invResp, shiftXY); + vigra_ext::transformImageSpatial(srcImageRange(srcImg), destImage(srcImg), invResp, vigra::Diff2D(0,0)); } double scaleFactor=1.0; |