From 5938966c037de1185d36c5e3c4e712943a7f2601 Mon Sep 17 00:00:00 2001 From: deseilligny Date: Wed, 14 Mar 2018 21:00:07 +0100 Subject: [PATCH] Hom filter + Rolling sur FITS --- src/uti_image/NewRechPH/NH_InvarRad.cpp | 75 +++++++++++++++++++++---- src/uti_image/NewRechPH/NewRechPH.cpp | 8 ++- src/uti_image/NewRechPH/NewRechPH.h | 7 ++- src/uti_phgrm/CPP_HomFilterMasq.cpp | 2 +- 4 files changed, 77 insertions(+), 15 deletions(-) diff --git a/src/uti_image/NewRechPH/NH_InvarRad.cpp b/src/uti_image/NewRechPH/NH_InvarRad.cpp index 460aaa2af7..68a11f5de9 100644 --- a/src/uti_image/NewRechPH/NH_InvarRad.cpp +++ b/src/uti_image/NewRechPH/NH_InvarRad.cpp @@ -40,9 +40,14 @@ Header-MicMac-eLiSe-25/06/2007*/ #include "NewRechPH.h" -Pt2di cAppli_NewRechPH::SzInvRad() +Pt2di cAppli_NewRechPH::SzInvRadUse() { - return Pt2di(mNbSR, mNbTetaInv); + return Pt2di(mNbSR2Use, mNbTetaInv); +} + +Pt2di cAppli_NewRechPH::SzInvRadCalc() +{ + return Pt2di(mNbSR2Calc, mNbTetaInv); } /* @@ -169,6 +174,23 @@ class cRadInvStat double mS3; }; + // return Pt2di(mNbSR2Use, mNbTetaInv); +void Normalise(tImNRPH aImBuf,tImNRPH aImOut,int aX0In,int aX1In,int aSzXOut) +{ + int aSzY = aImBuf.sz().y; + double aS0,aS1,aS2; + ELISE_COPY + ( + rectangle(Pt2di(aX0In,0),Pt2di(aX1In,aSzY)), + Virgule(1,aImBuf.in(),Square(aImBuf.in())), + Virgule(sigma(aS0),sigma(aS1),sigma(aS2)) + ); + aS1 /= aS0; + aS2 /= aS0; + aS2 -= ElSquare(aS1); + aS2 = sqrt(ElMax(1e-10,aS2)); + ELISE_COPY(rectangle(Pt2di(aX0In,0),Pt2di(aX0In+aSzXOut,aSzY)),(aImBuf.in()-aS1)/aS2, aImBuf.out()); +} bool cAppli_NewRechPH::CalvInvariantRot(cOnePCarac & aPt) @@ -182,7 +204,7 @@ bool cAppli_NewRechPH::CalvInvariantRot(cOnePCarac & aPt) } // Buf[KTeta][KRho] pour KRho=0, duplication de la valeur centrale - tImNRPH aImBuf(SzInvRad().x,SzInvRad().y); + tImNRPH aImBuf(SzInvRadCalc().x,SzInvRadCalc().y); tTImNRPH aTBuf(aImBuf); std::vector aVIm; @@ -194,7 +216,7 @@ bool cAppli_NewRechPH::CalvInvariantRot(cOnePCarac & aPt) int aN0 = aPt.NivScale(); // aVIm.push_back(mVI1.at(aN0)); - for (int aKRho=0 ; aKRho 0 ) + if (Ok && (aDistHom >0 )) { Pt2dr aRP1 = aVCam[aKN1]->Ter2Capteur(aPTer); Pt2dr aRP2 = aVCam[aKN2]->Ter2Capteur(aPTer);