Skip to content

Commit

Permalink
Added ReconstructError.cc and .h and made necessary changes to other …
Browse files Browse the repository at this point in the history
…files for support.
  • Loading branch information
harguess committed Aug 16, 2010
1 parent 5c48c33 commit d493f3d
Show file tree
Hide file tree
Showing 6 changed files with 312 additions and 287 deletions.
1 change: 1 addition & 0 deletions src/vw/Photometry.h
Expand Up @@ -19,6 +19,7 @@
#include <vw/Photometry/Misc.h>
#include <vw/Photometry/Outlier.h>
#include <vw/Photometry/Reconstruct.h>
#include <vw/Photometry/ReconstructError.h>
#include <vw/Photometry/Reflectance.h>
#include <vw/Photometry/Shadow.h>
#include <vw/Photometry/Shape.h>
Expand Down
515 changes: 264 additions & 251 deletions src/vw/Photometry/Albedo.cc

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions src/vw/Photometry/Albedo.h
Expand Up @@ -39,11 +39,12 @@ namespace photometry {
std::vector<ModelParams> overlap_img_params,
GlobalParams globalParams);

//josh - moved to ReconstructError.h
//reconstruction error functions
void ComputeReconstructionErrorMap(ModelParams input_img_params,
std::vector<ModelParams> overlap_img_params,
GlobalParams globalParams,
float *avgError, int *totalNumSamples);
// void ComputeReconstructionErrorMap(ModelParams input_img_params,
// std::vector<ModelParams> overlap_img_params,
// GlobalParams globalParams,
// float *avgError, int *totalNumSamples);

}} // end vw::photometry

Expand Down
44 changes: 25 additions & 19 deletions src/vw/Photometry/Exposure.cc
Expand Up @@ -11,6 +11,7 @@ using namespace vw::cartography;

#include <vw/Photometry/Reflectance.h>
#include <vw/Photometry/Reconstruct.h>
#include <vw/Photometry/ReconstructError.h>
#include <vw/Photometry/Misc.h>
#include <vw/Photometry/Weights.h>
#include <vw/Photometry/Exposure.h>
Expand All @@ -37,22 +38,23 @@ float ComputeGradient_Exposure(float T, float albedo) {
return grad;
}

//Ara Nefian
float ComputeError_Exposure(float intensity, float T,
float albedo, float reflectance,
Vector3 /*xyz*/,
Vector3 /*xyz_prior*/) {
float error;
error = (intensity-T*albedo*reflectance);
return error;
}

float ComputeError_Exposure(float intensity, float T,
float albedo, float reflectance) {
float error;
error = (intensity-T*albedo*reflectance);
return error;
}
//josh - moved to ReconstructError.cc and renamed to ComputeError
////Ara Nefian
//float ComputeError_Exposure(float intensity, float T,
// float albedo, float reflectance,
// Vector3 /*xyz*/,
// Vector3 /*xyz_prior*/) {
// float error;
// error = (intensity-T*albedo*reflectance);
// return error;
//}
//
//float ComputeError_Exposure(float intensity, float T,
// float albedo, float reflectance) {
// float error;
// error = (intensity-T*albedo*reflectance);
// return error;
//}

//void AppendExposureInfoToFile(string exposureFilename, string currInputFile, ModelParams currModelParams)
void vw::photometry::AppendExposureInfoToFile(std::string exposureFilename,
Expand Down Expand Up @@ -117,8 +119,10 @@ void vw::photometry::ComputeExposure(ModelParams *currModelParams,
if ( is_valid(curr_image(l,k)) ) {

currReflectance = 1;
float error = ComputeError_Exposure((float)curr_image(l,k), currModelParams->exposureTime,
float error = ComputeError((float)curr_image(l,k), currModelParams->exposureTime,
(float)curr_albedo(l,k), currReflectance);
// float error = ComputeError_Exposure((float)curr_image(l,k), currModelParams->exposureTime,
// (float)curr_albedo(l,k), currReflectance);
float gradient = ComputeGradient_Exposure( (float)curr_albedo(l,k), currReflectance);

delta_nominator = delta_nominator + error*gradient;
Expand Down Expand Up @@ -201,8 +205,10 @@ void vw::photometry::ComputeExposureAlbedo(ModelParams *currModelParams,
Vector3 normal = computeNormalFrom3DPointsGeneral(xyz, xyz_left, xyz_top);

currReflectance = ComputeReflectance(normal, xyz, *currModelParams, globalParams);
float error = ComputeError_Exposure((float)curr_image(l,k), currModelParams->exposureTime,
(float)curr_albedo(l,k), currReflectance, xyz, xyz);
float error = ComputeError((float)curr_image(l,k), currModelParams->exposureTime,
(float)curr_albedo(l,k), currReflectance);
// float error = ComputeError_Exposure((float)curr_image(l,k), currModelParams->exposureTime,
// (float)curr_albedo(l,k), currReflectance, xyz, xyz);

float gradient = ComputeGradient_Exposure(currModelParams->exposureTime, (float)curr_albedo(l,k));

Expand Down
6 changes: 3 additions & 3 deletions src/vw/Photometry/Makefile.am
Expand Up @@ -12,12 +12,12 @@
if MAKE_MODULE_PHOTOMETRY

include_HEADERS = Albedo.h Camres.h Exposure.h Index.h Misc.h Outlier.h \
Reconstruct.h Reflectance.h Shadow.h ShapeFromShading.h \
Shape.h Weights.h
Reconstruct.h ReconstructError.h Reflectance.h Shadow.h \
ShapeFromShading.h Shape.h Weights.h

libvwPhotometry_la_SOURCES = Albedo.cc Camres.cc Exposure.cc Index.cc Misc.cc \
Outlier.cc Reflectance.cc Shadow.cc Shape.cc \
ShapeFromShading.cc Weights.cc Reconstruct.cc
ShapeFromShading.cc Weights.cc Reconstruct.cc ReconstructError.cc

lib_LTLIBRARIES = libvwPhotometry.la

Expand Down
24 changes: 14 additions & 10 deletions src/vw/Photometry/ShapeFromShading.cc
Expand Up @@ -32,6 +32,7 @@ using namespace vw::cartography;

#include <math.h>
#include <vw/Photometry/Reconstruct.h>
#include <vw/Photometry/ReconstructError.h>
#include <vw/Photometry/ShapeFromShading.h>
using namespace vw::photometry;

Expand All @@ -41,7 +42,7 @@ using namespace vw::photometry;
//#define VER_BLOCK_SIZE 16 //8 //4
#define numJacobianRows (horBlockSize+1)*(verBlockSize+1)
#define numJacobianCols (horBlockSize*verBlockSize)
#define Unique "round1test"
#define Unique "round2test"

//enum LossType { GAUSSIAN, CAUCHY, EXPONENTIAL };
//double LOSS_ACCURACY_MULT = 1;
Expand Down Expand Up @@ -151,13 +152,14 @@ float ComputeReliefDerivative(Vector3 xyz,Vector3 xyzLEFT,Vector3 xyzTOP, Vector
return reliefDeriv;
}

float ComputeReconstructError(float intensity, float T, float albedo,
float reflectance) {
float error;
error = (intensity-T*albedo*reflectance); /*+ (xyz_prior[2]-xyz_prior[2]);*/
//std::cout << "intensity " << intensity << " albedo " << albedo << " T " << T << " reflectance " << reflectance << " error "<< error << std::endl;
return error;
}
//josh - moved to ReconstructError.cc and name changed to ComputeError
//float ComputeReconstructError(float intensity, float T, float albedo,
// float reflectance) {
// float error;
// error = (intensity-T*albedo*reflectance); /*+ (xyz_prior[2]-xyz_prior[2]);*/
// //std::cout << "intensity " << intensity << " albedo " << albedo << " T " << T << " reflectance " << reflectance << " error "<< error << std::endl;
// return error;
//}



Expand Down Expand Up @@ -308,7 +310,8 @@ ComputeBlockJacobian(ImageViewBase<ViewT1> const& inputImage, GeoReference const

//compute the reconstruction errors
float relief = ComputeReflectance(normalize(normalArray[r]), xyzArray[r], inputImgParams, globalParams);
float recErr = ComputeReconstructError((float)inputImage.impl()(jj, ii), inputImgParams.exposureTime, (float)albedoImage.impl()(jj, ii), relief);
float recErr = ComputeError((float)inputImage.impl()(jj, ii), inputImgParams.exposureTime, (float)albedoImage.impl()(jj, ii), relief);
// float recErr = ComputeReconstructError((float)inputImage.impl()(jj, ii), inputImgParams.exposureTime, (float)albedoImage.impl()(jj, ii), relief);
errorVectorArray(r) = recErr*weight;
//printf("%d %f\n", r, errorVectorArray(r));

Expand Down Expand Up @@ -403,7 +406,8 @@ ComputeBlockJacobianOverlap(ImageViewBase<ViewT1> const& inputImage, GeoReferenc

//compute the errors
float relief = ComputeReflectance(normalize(normalArray[r]), xyzArray[r], overlapImgParams, globalParams);
float recErr = ComputeReconstructError((float)interpOverlapImage.impl()(x, y), overlapImgParams.exposureTime, (float)albedoImage.impl()(jj, ii), relief);
float recErr = ComputeError((float)interpOverlapImage.impl()(x, y), overlapImgParams.exposureTime, (float)albedoImage.impl()(jj, ii), relief);
// float recErr = ComputeReconstructError((float)interpOverlapImage.impl()(x, y), overlapImgParams.exposureTime, (float)albedoImage.impl()(jj, ii), relief);
errorVectorArray(r) = recErr*weight;

}
Expand Down

0 comments on commit d493f3d

Please sign in to comment.