Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

implementation of debevec's gamma calibration routine gsolve, ported …

…from matlab. this is based on an earlier implementation i did for ofxStructuredLight, but the old version had some bugs and should be considered deprecated.
  • Loading branch information...
commit 314da73def82535b8ac2b14c8662e7d3fcfbfcd8 1 parent b21d340
@kylemcdonald kylemcdonald authored
View
973 CameraGammaCalibrate/GammaCalibrate.xcodeproj/project.pbxproj
@@ -0,0 +1,973 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 27820B4413EE44A100FA3407 /* Calibration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27820B3C13EE44A100FA3407 /* Calibration.cpp */; };
+ 27820B4513EE44A100FA3407 /* Distance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27820B3E13EE44A100FA3407 /* Distance.cpp */; };
+ 27820B4713EE44A100FA3407 /* ofxCv.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27820B4213EE44A100FA3407 /* ofxCv.cpp */; };
+ 27820C4C13EE44B200FA3407 /* opencv.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 27820BE013EE44B100FA3407 /* opencv.a */; };
+ 27C7F4FB13F690650090CE3C /* gsolve.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27C7F4FA13F690650090CE3C /* gsolve.cpp */; };
+ 27CF626213F58895000F37BC /* GammaCalibration.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CF625913F58895000F37BC /* GammaCalibration.cpp */; };
+ 27CF626313F58895000F37BC /* LutFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CF625B13F58895000F37BC /* LutFilter.cpp */; };
+ 27CF626413F58895000F37BC /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CF625D13F58895000F37BC /* main.cpp */; };
+ 27CF626513F58895000F37BC /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CF625E13F58895000F37BC /* testApp.cpp */; };
+ 27CF626613F58895000F37BC /* ThreadedSolver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 27CF626013F58895000F37BC /* ThreadedSolver.cpp */; };
+ BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
+ E4328149138ABC9F0047C5CB /* openFrameworks.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4328148138ABC890047C5CB /* openFrameworks.a */; };
+ E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; };
+ E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; };
+ E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; };
+ E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; };
+ E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; };
+ E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; };
+ E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; };
+ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; };
+ E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; };
+ E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; };
+ E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; };
+ E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; };
+ E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BBAB23BE13894E4700AA2426 /* GLUT.framework */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ E4328147138ABC890047C5CB /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = E4B27C1510CBEB8E00536013;
+ remoteInfo = openFrameworks;
+ };
+ E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = E4B27C1410CBEB8E00536013;
+ remoteInfo = openFrameworks;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ BBAB23CB13894F3D00AA2426 /* GLUT.framework in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 27820B3C13EE44A100FA3407 /* Calibration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Calibration.cpp; path = ../../../addons/ofxCv/src/Calibration.cpp; sourceTree = SOURCE_ROOT; };
+ 27820B3D13EE44A100FA3407 /* Calibration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Calibration.h; path = ../../../addons/ofxCv/src/Calibration.h; sourceTree = SOURCE_ROOT; };
+ 27820B3E13EE44A100FA3407 /* Distance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Distance.cpp; path = ../../../addons/ofxCv/src/Distance.cpp; sourceTree = SOURCE_ROOT; };
+ 27820B3F13EE44A100FA3407 /* Distance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Distance.h; path = ../../../addons/ofxCv/src/Distance.h; sourceTree = SOURCE_ROOT; };
+ 27820B4213EE44A100FA3407 /* ofxCv.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ofxCv.cpp; path = ../../../addons/ofxCv/src/ofxCv.cpp; sourceTree = SOURCE_ROOT; };
+ 27820B4313EE44A100FA3407 /* ofxCv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ofxCv.h; path = ../../../addons/ofxCv/src/ofxCv.h; sourceTree = SOURCE_ROOT; };
+ 27820B4C13EE44B100FA3407 /* cv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cv.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cv.h; sourceTree = SOURCE_ROOT; };
+ 27820B4D13EE44B100FA3407 /* cv.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = cv.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cv.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B4E13EE44B100FA3407 /* cvaux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cvaux.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cvaux.h; sourceTree = SOURCE_ROOT; };
+ 27820B4F13EE44B100FA3407 /* cvaux.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = cvaux.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cvaux.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B5013EE44B100FA3407 /* cvwimage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cvwimage.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cvwimage.h; sourceTree = SOURCE_ROOT; };
+ 27820B5113EE44B100FA3407 /* cxcore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cxcore.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cxcore.h; sourceTree = SOURCE_ROOT; };
+ 27820B5213EE44B100FA3407 /* cxcore.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = cxcore.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cxcore.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B5313EE44B100FA3407 /* cxeigen.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = cxeigen.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cxeigen.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B5413EE44B100FA3407 /* cxmisc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cxmisc.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/cxmisc.h; sourceTree = SOURCE_ROOT; };
+ 27820B5513EE44B100FA3407 /* highgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = highgui.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/highgui.h; sourceTree = SOURCE_ROOT; };
+ 27820B5613EE44B100FA3407 /* ml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ml.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv/ml.h; sourceTree = SOURCE_ROOT; };
+ 27820B5913EE44B100FA3407 /* calib3d.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = calib3d.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/calib3d/calib3d.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B5B13EE44B100FA3407 /* contrib.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = contrib.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/contrib/contrib.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B5D13EE44B100FA3407 /* core.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = core.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/core.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B5E13EE44B100FA3407 /* core_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = core_c.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/core_c.h; sourceTree = SOURCE_ROOT; };
+ 27820B5F13EE44B100FA3407 /* eigen.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = eigen.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/eigen.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6013EE44B100FA3407 /* internal.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = internal.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/internal.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6113EE44B100FA3407 /* mat.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = mat.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/mat.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6213EE44B100FA3407 /* operations.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = operations.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/operations.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6313EE44B100FA3407 /* types_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types_c.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/types_c.h; sourceTree = SOURCE_ROOT; };
+ 27820B6413EE44B100FA3407 /* version.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = version.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/version.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6513EE44B100FA3407 /* wimage.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = wimage.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core/wimage.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6713EE44B100FA3407 /* features2d.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = features2d.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/features2d/features2d.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6913EE44B100FA3407 /* all_indices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = all_indices.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/all_indices.h; sourceTree = SOURCE_ROOT; };
+ 27820B6A13EE44B100FA3407 /* allocator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = allocator.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/allocator.h; sourceTree = SOURCE_ROOT; };
+ 27820B6B13EE44B100FA3407 /* autotuned_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = autotuned_index.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/autotuned_index.h; sourceTree = SOURCE_ROOT; };
+ 27820B6C13EE44B100FA3407 /* composite_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = composite_index.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/composite_index.h; sourceTree = SOURCE_ROOT; };
+ 27820B6D13EE44B100FA3407 /* dist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dist.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/dist.h; sourceTree = SOURCE_ROOT; };
+ 27820B6E13EE44B100FA3407 /* flann.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = flann.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/flann.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B6F13EE44B100FA3407 /* flann_base.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = flann_base.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/flann_base.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B7013EE44B100FA3407 /* general.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = general.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/general.h; sourceTree = SOURCE_ROOT; };
+ 27820B7113EE44B100FA3407 /* ground_truth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ground_truth.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/ground_truth.h; sourceTree = SOURCE_ROOT; };
+ 27820B7213EE44B100FA3407 /* hdf5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = hdf5.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/hdf5.h; sourceTree = SOURCE_ROOT; };
+ 27820B7313EE44B100FA3407 /* heap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = heap.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/heap.h; sourceTree = SOURCE_ROOT; };
+ 27820B7413EE44B100FA3407 /* index_testing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = index_testing.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/index_testing.h; sourceTree = SOURCE_ROOT; };
+ 27820B7513EE44B100FA3407 /* kdtree_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kdtree_index.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/kdtree_index.h; sourceTree = SOURCE_ROOT; };
+ 27820B7613EE44B100FA3407 /* kmeans_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = kmeans_index.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/kmeans_index.h; sourceTree = SOURCE_ROOT; };
+ 27820B7713EE44B100FA3407 /* linear_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = linear_index.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/linear_index.h; sourceTree = SOURCE_ROOT; };
+ 27820B7813EE44B100FA3407 /* logger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = logger.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/logger.h; sourceTree = SOURCE_ROOT; };
+ 27820B7913EE44B100FA3407 /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = matrix.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/matrix.h; sourceTree = SOURCE_ROOT; };
+ 27820B7A13EE44B100FA3407 /* nn_index.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = nn_index.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/nn_index.h; sourceTree = SOURCE_ROOT; };
+ 27820B7B13EE44B100FA3407 /* object_factory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = object_factory.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/object_factory.h; sourceTree = SOURCE_ROOT; };
+ 27820B7C13EE44B100FA3407 /* random.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = random.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/random.h; sourceTree = SOURCE_ROOT; };
+ 27820B7D13EE44B100FA3407 /* result_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = result_set.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/result_set.h; sourceTree = SOURCE_ROOT; };
+ 27820B7E13EE44B100FA3407 /* sampling.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sampling.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/sampling.h; sourceTree = SOURCE_ROOT; };
+ 27820B7F13EE44B100FA3407 /* saving.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = saving.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/saving.h; sourceTree = SOURCE_ROOT; };
+ 27820B8013EE44B100FA3407 /* simplex_downhill.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = simplex_downhill.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/simplex_downhill.h; sourceTree = SOURCE_ROOT; };
+ 27820B8113EE44B100FA3407 /* timer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = timer.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann/timer.h; sourceTree = SOURCE_ROOT; };
+ 27820B8313EE44B100FA3407 /* devmem2d.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = devmem2d.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/gpu/devmem2d.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B8413EE44B100FA3407 /* gpu.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = gpu.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/gpu/gpu.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B8513EE44B100FA3407 /* matrix_operations.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = matrix_operations.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/gpu/matrix_operations.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B8613EE44B100FA3407 /* stream_accessor.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = stream_accessor.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/gpu/stream_accessor.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B8813EE44B100FA3407 /* highgui.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = highgui.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/highgui/highgui.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B8913EE44B100FA3407 /* highgui_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = highgui_c.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/highgui/highgui_c.h; sourceTree = SOURCE_ROOT; };
+ 27820B8B13EE44B100FA3407 /* imgproc.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = imgproc.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/imgproc/imgproc.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B8C13EE44B100FA3407 /* imgproc_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgproc_c.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/imgproc/imgproc_c.h; sourceTree = SOURCE_ROOT; };
+ 27820B8D13EE44B100FA3407 /* types_c.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = types_c.h; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/imgproc/types_c.h; sourceTree = SOURCE_ROOT; };
+ 27820B8F13EE44B100FA3407 /* blobtrack.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = blobtrack.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/legacy/blobtrack.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9013EE44B100FA3407 /* compat.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = compat.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/legacy/compat.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9113EE44B100FA3407 /* legacy.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = legacy.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/legacy/legacy.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9213EE44B100FA3407 /* streams.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = streams.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/legacy/streams.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9413EE44B100FA3407 /* ml.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = ml.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/ml/ml.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9613EE44B100FA3407 /* objdetect.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = objdetect.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/objdetect/objdetect.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9713EE44B100FA3407 /* opencv.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = opencv.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/opencv.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9913EE44B100FA3407 /* background_segm.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = background_segm.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/video/background_segm.hpp; sourceTree = SOURCE_ROOT; };
+ 27820B9A13EE44B100FA3407 /* tracking.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = tracking.hpp; path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/video/tracking.hpp; sourceTree = SOURCE_ROOT; };
+ 27820BE013EE44B100FA3407 /* opencv.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = opencv.a; path = ../../../addons/ofxOpenCv/libs/opencv/lib/osx/opencv.a; sourceTree = SOURCE_ROOT; };
+ 27C7F40813F6804A0090CE3C /* gsolve.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = gsolve.hpp; sourceTree = "<group>"; };
+ 27C7F4FA13F690650090CE3C /* gsolve.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gsolve.cpp; sourceTree = "<group>"; };
+ 27CF625913F58895000F37BC /* GammaCalibration.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GammaCalibration.cpp; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/GammaCalibration.cpp"; sourceTree = SOURCE_ROOT; };
+ 27CF625A13F58895000F37BC /* GammaCalibration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GammaCalibration.h; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/GammaCalibration.h"; sourceTree = SOURCE_ROOT; };
+ 27CF625B13F58895000F37BC /* LutFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LutFilter.cpp; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/LutFilter.cpp"; sourceTree = SOURCE_ROOT; };
+ 27CF625C13F58895000F37BC /* LutFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LutFilter.h; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/LutFilter.h"; sourceTree = SOURCE_ROOT; };
+ 27CF625D13F58895000F37BC /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/main.cpp"; sourceTree = SOURCE_ROOT; };
+ 27CF625E13F58895000F37BC /* testApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = testApp.cpp; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/testApp.cpp"; sourceTree = SOURCE_ROOT; };
+ 27CF625F13F58895000F37BC /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/testApp.h"; sourceTree = SOURCE_ROOT; };
+ 27CF626013F58895000F37BC /* ThreadedSolver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ThreadedSolver.cpp; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/ThreadedSolver.cpp"; sourceTree = SOURCE_ROOT; };
+ 27CF626113F58895000F37BC /* ThreadedSolver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ThreadedSolver.h; path = "../../../../structured-light/OpenFrameworks/apps/structuredLight/GammaCalibrate/src/ThreadedSolver.h"; sourceTree = SOURCE_ROOT; };
+ BBAB23BE13894E4700AA2426 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = "<group>"; };
+ E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
+ E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
+ E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
+ E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
+ E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
+ E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
+ E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
+ E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
+ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
+ E4B69B5B0A3A1756003C02F2 /* GammaCalibrate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = GammaCalibrate.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = "<group>"; };
+ E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+ E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
+ E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = CoreOF.xcconfig; path = ../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig; sourceTree = SOURCE_ROOT; };
+ E4EB6923138AFD0F00A09F29 /* Project.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Project.xcconfig; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ E4B69B590A3A1756003C02F2 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E4EB6799138ADC1D00A09F29 /* GLUT.framework in Frameworks */,
+ E4328149138ABC9F0047C5CB /* openFrameworks.a in Frameworks */,
+ E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */,
+ E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */,
+ E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */,
+ E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */,
+ E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */,
+ E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */,
+ E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */,
+ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */,
+ E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */,
+ E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */,
+ E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */,
+ E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */,
+ 27820C4C13EE44B200FA3407 /* opencv.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 2718092E13D217A1009139D3 /* ofxCv */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B4813EE44B100FA3407 /* libs */,
+ 27820B3B13EE44A100FA3407 /* src */,
+ );
+ name = ofxCv;
+ sourceTree = "<group>";
+ };
+ 27820B3B13EE44A100FA3407 /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B3C13EE44A100FA3407 /* Calibration.cpp */,
+ 27820B3D13EE44A100FA3407 /* Calibration.h */,
+ 27820B3E13EE44A100FA3407 /* Distance.cpp */,
+ 27820B3F13EE44A100FA3407 /* Distance.h */,
+ 27820B4213EE44A100FA3407 /* ofxCv.cpp */,
+ 27820B4313EE44A100FA3407 /* ofxCv.h */,
+ );
+ name = src;
+ path = ../../../addons/ofxCv/src;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B4813EE44B100FA3407 /* libs */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B4913EE44B100FA3407 /* opencv */,
+ );
+ name = libs;
+ path = ../../../addons/ofxOpenCv/libs;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B4913EE44B100FA3407 /* opencv */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B4A13EE44B100FA3407 /* include */,
+ 27820B9B13EE44B100FA3407 /* lib */,
+ );
+ name = opencv;
+ path = ../../../addons/ofxOpenCv/libs/opencv;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B4A13EE44B100FA3407 /* include */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B4B13EE44B100FA3407 /* opencv */,
+ 27820B5713EE44B100FA3407 /* opencv2 */,
+ );
+ name = include;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B4B13EE44B100FA3407 /* opencv */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B4C13EE44B100FA3407 /* cv.h */,
+ 27820B4D13EE44B100FA3407 /* cv.hpp */,
+ 27820B4E13EE44B100FA3407 /* cvaux.h */,
+ 27820B4F13EE44B100FA3407 /* cvaux.hpp */,
+ 27820B5013EE44B100FA3407 /* cvwimage.h */,
+ 27820B5113EE44B100FA3407 /* cxcore.h */,
+ 27820B5213EE44B100FA3407 /* cxcore.hpp */,
+ 27820B5313EE44B100FA3407 /* cxeigen.hpp */,
+ 27820B5413EE44B100FA3407 /* cxmisc.h */,
+ 27820B5513EE44B100FA3407 /* highgui.h */,
+ 27820B5613EE44B100FA3407 /* ml.h */,
+ );
+ name = opencv;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B5713EE44B100FA3407 /* opencv2 */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B5813EE44B100FA3407 /* calib3d */,
+ 27820B5A13EE44B100FA3407 /* contrib */,
+ 27820B5C13EE44B100FA3407 /* core */,
+ 27820B6613EE44B100FA3407 /* features2d */,
+ 27820B6813EE44B100FA3407 /* flann */,
+ 27820B8213EE44B100FA3407 /* gpu */,
+ 27820B8713EE44B100FA3407 /* highgui */,
+ 27820B8A13EE44B100FA3407 /* imgproc */,
+ 27820B8E13EE44B100FA3407 /* legacy */,
+ 27820B9313EE44B100FA3407 /* ml */,
+ 27820B9513EE44B100FA3407 /* objdetect */,
+ 27820B9713EE44B100FA3407 /* opencv.hpp */,
+ 27820B9813EE44B100FA3407 /* video */,
+ );
+ name = opencv2;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B5813EE44B100FA3407 /* calib3d */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B5913EE44B100FA3407 /* calib3d.hpp */,
+ );
+ name = calib3d;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/calib3d;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B5A13EE44B100FA3407 /* contrib */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B5B13EE44B100FA3407 /* contrib.hpp */,
+ );
+ name = contrib;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/contrib;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B5C13EE44B100FA3407 /* core */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B5D13EE44B100FA3407 /* core.hpp */,
+ 27820B5E13EE44B100FA3407 /* core_c.h */,
+ 27820B5F13EE44B100FA3407 /* eigen.hpp */,
+ 27820B6013EE44B100FA3407 /* internal.hpp */,
+ 27820B6113EE44B100FA3407 /* mat.hpp */,
+ 27820B6213EE44B100FA3407 /* operations.hpp */,
+ 27820B6313EE44B100FA3407 /* types_c.h */,
+ 27820B6413EE44B100FA3407 /* version.hpp */,
+ 27820B6513EE44B100FA3407 /* wimage.hpp */,
+ );
+ name = core;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/core;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B6613EE44B100FA3407 /* features2d */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B6713EE44B100FA3407 /* features2d.hpp */,
+ );
+ name = features2d;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/features2d;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B6813EE44B100FA3407 /* flann */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B6913EE44B100FA3407 /* all_indices.h */,
+ 27820B6A13EE44B100FA3407 /* allocator.h */,
+ 27820B6B13EE44B100FA3407 /* autotuned_index.h */,
+ 27820B6C13EE44B100FA3407 /* composite_index.h */,
+ 27820B6D13EE44B100FA3407 /* dist.h */,
+ 27820B6E13EE44B100FA3407 /* flann.hpp */,
+ 27820B6F13EE44B100FA3407 /* flann_base.hpp */,
+ 27820B7013EE44B100FA3407 /* general.h */,
+ 27820B7113EE44B100FA3407 /* ground_truth.h */,
+ 27820B7213EE44B100FA3407 /* hdf5.h */,
+ 27820B7313EE44B100FA3407 /* heap.h */,
+ 27820B7413EE44B100FA3407 /* index_testing.h */,
+ 27820B7513EE44B100FA3407 /* kdtree_index.h */,
+ 27820B7613EE44B100FA3407 /* kmeans_index.h */,
+ 27820B7713EE44B100FA3407 /* linear_index.h */,
+ 27820B7813EE44B100FA3407 /* logger.h */,
+ 27820B7913EE44B100FA3407 /* matrix.h */,
+ 27820B7A13EE44B100FA3407 /* nn_index.h */,
+ 27820B7B13EE44B100FA3407 /* object_factory.h */,
+ 27820B7C13EE44B100FA3407 /* random.h */,
+ 27820B7D13EE44B100FA3407 /* result_set.h */,
+ 27820B7E13EE44B100FA3407 /* sampling.h */,
+ 27820B7F13EE44B100FA3407 /* saving.h */,
+ 27820B8013EE44B100FA3407 /* simplex_downhill.h */,
+ 27820B8113EE44B100FA3407 /* timer.h */,
+ );
+ name = flann;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/flann;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B8213EE44B100FA3407 /* gpu */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B8313EE44B100FA3407 /* devmem2d.hpp */,
+ 27820B8413EE44B100FA3407 /* gpu.hpp */,
+ 27820B8513EE44B100FA3407 /* matrix_operations.hpp */,
+ 27820B8613EE44B100FA3407 /* stream_accessor.hpp */,
+ );
+ name = gpu;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/gpu;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B8713EE44B100FA3407 /* highgui */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B8813EE44B100FA3407 /* highgui.hpp */,
+ 27820B8913EE44B100FA3407 /* highgui_c.h */,
+ );
+ name = highgui;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/highgui;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B8A13EE44B100FA3407 /* imgproc */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B8B13EE44B100FA3407 /* imgproc.hpp */,
+ 27820B8C13EE44B100FA3407 /* imgproc_c.h */,
+ 27820B8D13EE44B100FA3407 /* types_c.h */,
+ );
+ name = imgproc;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/imgproc;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B8E13EE44B100FA3407 /* legacy */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B8F13EE44B100FA3407 /* blobtrack.hpp */,
+ 27820B9013EE44B100FA3407 /* compat.hpp */,
+ 27820B9113EE44B100FA3407 /* legacy.hpp */,
+ 27820B9213EE44B100FA3407 /* streams.hpp */,
+ );
+ name = legacy;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/legacy;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B9313EE44B100FA3407 /* ml */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B9413EE44B100FA3407 /* ml.hpp */,
+ );
+ name = ml;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/ml;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B9513EE44B100FA3407 /* objdetect */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B9613EE44B100FA3407 /* objdetect.hpp */,
+ );
+ name = objdetect;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/objdetect;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B9813EE44B100FA3407 /* video */ = {
+ isa = PBXGroup;
+ children = (
+ 27820B9913EE44B100FA3407 /* background_segm.hpp */,
+ 27820B9A13EE44B100FA3407 /* tracking.hpp */,
+ );
+ name = video;
+ path = ../../../addons/ofxOpenCv/libs/opencv/include/opencv2/video;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820B9B13EE44B100FA3407 /* lib */ = {
+ isa = PBXGroup;
+ children = (
+ 27820BDF13EE44B100FA3407 /* osx */,
+ );
+ name = lib;
+ path = ../../../addons/ofxOpenCv/libs/opencv/lib;
+ sourceTree = SOURCE_ROOT;
+ };
+ 27820BDF13EE44B100FA3407 /* osx */ = {
+ isa = PBXGroup;
+ children = (
+ 27820BE013EE44B100FA3407 /* opencv.a */,
+ );
+ name = osx;
+ path = ../../../addons/ofxOpenCv/libs/opencv/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+ BB4B014C10F69532006C3DED /* addons */ = {
+ isa = PBXGroup;
+ children = (
+ 2718092E13D217A1009139D3 /* ofxCv */,
+ );
+ name = addons;
+ sourceTree = "<group>";
+ };
+ BBAB23C913894ECA00AA2426 /* system frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2424410CC5A17004149E2 /* AppKit.framework */,
+ E4C2424510CC5A17004149E2 /* Cocoa.framework */,
+ E4C2424610CC5A17004149E2 /* IOKit.framework */,
+ E45BE9710E8CC7DD009D7055 /* AGL.framework */,
+ E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */,
+ E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */,
+ E45BE9740E8CC7DD009D7055 /* Carbon.framework */,
+ E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */,
+ E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */,
+ E45BE9770E8CC7DD009D7055 /* CoreServices.framework */,
+ E45BE9790E8CC7DD009D7055 /* OpenGL.framework */,
+ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */,
+ );
+ name = "system frameworks";
+ sourceTree = "<group>";
+ };
+ BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ BBAB23BE13894E4700AA2426 /* GLUT.framework */,
+ );
+ name = "3rd party frameworks";
+ sourceTree = "<group>";
+ };
+ E4328144138ABC890047C5CB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ E4328148138ABC890047C5CB /* openFrameworks.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ E45BE5980E8CC70C009D7055 /* frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ BBAB23CA13894EDB00AA2426 /* 3rd party frameworks */,
+ BBAB23C913894ECA00AA2426 /* system frameworks */,
+ );
+ name = frameworks;
+ sourceTree = "<group>";
+ };
+ E4B69B4A0A3A1720003C02F2 = {
+ isa = PBXGroup;
+ children = (
+ E4B69E1C0A3A1BDC003C02F2 /* src */,
+ E4EEC9E9138DF44700A80321 /* openFrameworks */,
+ BB4B014C10F69532006C3DED /* addons */,
+ E45BE5980E8CC70C009D7055 /* frameworks */,
+ E4B69B5B0A3A1756003C02F2 /* GammaCalibrate.app */,
+ );
+ sourceTree = "<group>";
+ };
+ E4B69E1C0A3A1BDC003C02F2 /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 27CF625D13F58895000F37BC /* main.cpp */,
+ 27CF625E13F58895000F37BC /* testApp.cpp */,
+ 27CF625F13F58895000F37BC /* testApp.h */,
+ 27CF625913F58895000F37BC /* GammaCalibration.cpp */,
+ 27CF625A13F58895000F37BC /* GammaCalibration.h */,
+ 27CF625B13F58895000F37BC /* LutFilter.cpp */,
+ 27CF625C13F58895000F37BC /* LutFilter.h */,
+ 27CF626013F58895000F37BC /* ThreadedSolver.cpp */,
+ 27CF626113F58895000F37BC /* ThreadedSolver.h */,
+ 27C7F40813F6804A0090CE3C /* gsolve.hpp */,
+ 27C7F4FA13F690650090CE3C /* gsolve.cpp */,
+ );
+ path = src;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4EEC9E9138DF44700A80321 /* openFrameworks */ = {
+ isa = PBXGroup;
+ children = (
+ E4EB6923138AFD0F00A09F29 /* Project.xcconfig */,
+ E4EB691F138AFCF100A09F29 /* CoreOF.xcconfig */,
+ E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */,
+ E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
+ );
+ name = openFrameworks;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ E4B69B5A0A3A1756003C02F2 /* GammaCalibrate */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "GammaCalibrate" */;
+ buildPhases = (
+ E4B69B580A3A1756003C02F2 /* Sources */,
+ E4B69B590A3A1756003C02F2 /* Frameworks */,
+ E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
+ E4C2427710CC5ABF004149E2 /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ E4EEB9AC138B136A00A80321 /* PBXTargetDependency */,
+ );
+ name = GammaCalibrate;
+ productName = myOFApp;
+ productReference = E4B69B5B0A3A1756003C02F2 /* GammaCalibrate.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ E4B69B4C0A3A1720003C02F2 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "GammaCalibrate" */;
+ compatibilityVersion = "Xcode 2.4";
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = E4B69B4A0A3A1720003C02F2;
+ productRefGroup = E4B69B4A0A3A1720003C02F2;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = E4328144138ABC890047C5CB /* Products */;
+ ProjectRef = E4328143138ABC890047C5CB /* openFrameworksLib.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ E4B69B5A0A3A1756003C02F2 /* GammaCalibrate */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ E4328148138ABC890047C5CB /* openFrameworks.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = openFrameworks.a;
+ remoteRef = E4328147138ABC890047C5CB /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"; install_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\";";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ E4B69B580A3A1756003C02F2 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 27820B4413EE44A100FA3407 /* Calibration.cpp in Sources */,
+ 27820B4513EE44A100FA3407 /* Distance.cpp in Sources */,
+ 27820B4713EE44A100FA3407 /* ofxCv.cpp in Sources */,
+ 27CF626213F58895000F37BC /* GammaCalibration.cpp in Sources */,
+ 27CF626313F58895000F37BC /* LutFilter.cpp in Sources */,
+ 27CF626413F58895000F37BC /* main.cpp in Sources */,
+ 27CF626513F58895000F37BC /* testApp.cpp in Sources */,
+ 27CF626613F58895000F37BC /* ThreadedSolver.cpp in Sources */,
+ 27C7F4FB13F690650090CE3C /* gsolve.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ E4EEB9AC138B136A00A80321 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = openFrameworks;
+ targetProxy = E4EEB9AB138B136A00A80321 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ E4B69B4E0A3A1720003C02F2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(NATIVE_ARCH)";
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-lpthread",
+ );
+ };
+ name = Debug;
+ };
+ E4B69B4F0A3A1720003C02F2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ baseConfigurationReference = E4EB6923138AFD0F00A09F29 /* Project.xcconfig */;
+ buildSettings = {
+ ARCHS = "$(NATIVE_ARCH)";
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_UNROLL_LOOPS = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-lpthread",
+ );
+ };
+ name = Release;
+ };
+ E4B69B600A3A1757003C02F2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = G4;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_52)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
+ );
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/android/armeabi\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/android/armeabi-v7a\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/iphone\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/linux\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/linux64\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/vs2010\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/win_cb\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/android/armeabi-v7a\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/iphone\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/linux\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/linux64\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/vs2010\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/win_cb\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/android/armeabi\"";
+ PREBINDING = NO;
+ PRODUCT_NAME = "$(TARGET_NAME)Debug";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ E4B69B610A3A1757003C02F2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G4;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_17)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_18)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_19)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_20)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_21)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_22)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_23)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_24)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_25)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_26)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_27)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_28)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_29)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_30)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_31)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_32)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_33)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_34)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_35)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_36)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_37)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_38)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_39)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_40)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_41)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_42)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_43)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_44)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_45)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_46)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_47)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_48)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_49)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_50)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_51)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16)",
+ );
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/android/armeabi\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/android/armeabi-v7a\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/iphone\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/linux\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/linux64\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/vs2010\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_16 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/win_cb\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/android/armeabi-v7a\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/iphone\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/linux\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/linux64\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/vs2010\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8 = "\"$(SRCROOT)/../../ofxOpenCv/libs/opencv/lib/win_cb\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/android/armeabi\"";
+ PREBINDING = NO;
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "GammaCalibrate" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E4B69B4E0A3A1720003C02F2 /* Debug */,
+ E4B69B4F0A3A1720003C02F2 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "GammaCalibrate" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E4B69B600A3A1757003C02F2 /* Debug */,
+ E4B69B610A3A1757003C02F2 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
+}
View
9 CameraGammaCalibrate/Project.xcconfig
@@ -0,0 +1,9 @@
+//THE PATH TO THE ROOT OF OUR OF PATH RELATIVE TO THIS PROJECT.
+//THIS NEEDS TO BE DEFINED BEFORE CoreOF.xcconfig IS INCLUDED
+OF_PATH = ../../..
+
+//THIS HAS ALL THE HEADER AND LIBS FOR OF CORE
+#include "../../../libs/openFrameworksCompiled/project/osx/CoreOF.xcconfig"
+
+OTHER_LDFLAGS = $(OF_CORE_LIBS)
+HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) "../../../addons/ofxOpenCv/libs/opencv/include/"
View
20 CameraGammaCalibrate/openFrameworks-Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.openFrameworks</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
View
132 CameraGammaCalibrate/src/GammaCalibration.cpp
@@ -0,0 +1,132 @@
+#include "GammaCalibration.h"
+
+void GammaCalibration::calibrate(vector<ofImage>& images, vector<float>& shutterTimes,
+ vector<float>& grayGamma,
+ int sampledLocations, float smoothness) {
+ calibrate(images, shutterTimes, grayGamma, 0, 1, sampledLocations, smoothness);
+}
+
+void GammaCalibration::calibrate(vector<ofImage>& images, vector<float>& shutterTimes,
+ vector<float>& redGamma, vector<float>& greenGamma, vector<float>& blueGamma,
+ int sampledLocations, float smoothness) {
+ calibrate(images, shutterTimes, redGamma, 0, 3, sampledLocations, smoothness);
+ calibrate(images, shutterTimes, greenGamma, 1, 3, sampledLocations, smoothness);
+ calibrate(images, shutterTimes, blueGamma, 2, 3, sampledLocations, smoothness);
+}
+
+void GammaCalibration::calibrate(vector<ofImage>& images, vector<float>& shutterTimes,
+ vector<float>& gamma,
+ int offset, int step,
+ int sampledLocations, float smoothness) {
+ // take the log of the shutterTimes
+ int sampledshutters = images.size();
+ CvMat* inputshutters = cvCreateMat(sampledshutters, 1, CV_32FC1);
+ float* inputshuttersPtr = (float*) cvPtr1D(inputshutters, 0);
+ for(int i = 0; i < shutterTimes.size(); i++)
+ inputshuttersPtr[i] = logf(shutterTimes[i]);
+
+ // allocate working space
+ CvMat* inputCurves = cvCreateMat(sampledLocations, sampledshutters, CV_8UC1);
+ CvMat* weighting = cvCreateMat(levels, 1, CV_8UC1);
+ int* locations = new int[sampledLocations];
+
+ // allocate the linear system
+ long sizeA1 = sampledLocations * sampledshutters + levels + 1;
+ long sizeA2 = levels + sampledLocations;
+ CvMat* A = cvCreateMat(sizeA1, sizeA2, CV_32FC1);
+ CvMat* b = cvCreateMat(sizeA1, 1, CV_32FC1);
+ CvMat* x = cvCreateMat(sizeA2, 1, CV_32FC1);
+ float* xptr = (float*) cvPtr1D(x, 0);
+
+ // histogram the intensity values of the middle image
+ ofImage& middleImage = images[images.size() / 2];
+ vector< vector<int> > histogram(levels);
+ int totalPixels = (int) middleImage.getWidth() * (int) middleImage.getHeight();
+ unsigned char* middle = middleImage.getPixels();
+ for(int i = 0; i < totalPixels; i++)
+ histogram[middle[i * step + offset]].push_back(i);
+
+ // find nonempty histogram bins
+ vector<unsigned char> nonempty;
+ for(int i = 0; i < levels; i++)
+ if(histogram[i].size() > 0)
+ nonempty.push_back(i);
+
+ // from nonempty bins, pick random shutter-equidistant locations
+ for(int i = 0; i < sampledLocations; i++) {
+ int intensity = nonempty[(i * nonempty.size()) / sampledLocations];
+ vector<int>& bin = histogram[intensity];
+ locations[i] = bin[(int) ofRandom(0, bin.size())];
+ }
+
+ // given the locations, fill up the input curves
+ unsigned char* inputCurvesPtr = (unsigned char*) cvPtr2D(inputCurves, 0, 0);
+ for(int i = 0; i < sampledLocations; i++) {
+ int curLocation = locations[i] * step + offset;
+ for(int j = 0; j < sampledshutters; j++) {
+ unsigned char* curPixels = images[j].getPixels();
+ *(inputCurvesPtr++) = curPixels[curLocation];
+ }
+ }
+
+ // generate the weighting (hat) function
+ unsigned char* weightingPtr = (unsigned char*) cvPtr1D(weighting, 0);
+ for(int z = 0; z < levels / 2; z++)
+ weightingPtr[z] = z;
+ for(int z = levels / 2; z < levels; z++)
+ weightingPtr[z] = levels - z;
+
+ // fill up the system: data fitting
+ int k = 0;
+ for(int i = 0; i < sampledLocations; i++) {
+ for(int j = 0; j < sampledshutters; j++) {
+ unsigned char curZ = *cvPtr2D(inputCurves, i, j);
+ unsigned char wij = weightingPtr[curZ];
+ *((float*) cvPtr2D(A, k, curZ)) = wij;
+ *((float*) cvPtr2D(A, k, levels + i)) = -wij;
+ *((float*) cvPtr1D(b, k)) = wij * inputshuttersPtr[j];
+ k++;
+ }
+ }
+
+ // fill up the system: set the middle of the curve to 0
+ *((float*) cvPtr2D(A, k, 128)) = 0;
+ k++;
+
+ // fill up the system: include smoothness constraint
+ for(int i = 0; i < levels - 2; i++) {
+ *((float*) cvPtr2D(A, k, i)) = smoothness * weightingPtr[i];
+ *((float*) cvPtr2D(A, k, i + 1)) = -2 * smoothness * weightingPtr[i];
+ *((float*) cvPtr2D(A, k, i + 2)) = smoothness * weightingPtr[i];
+ k++;
+ }
+
+ // solve the system
+ cvSolve(A, b, x, CV_SVD);
+
+ gamma.clear();
+ gamma.resize(256);
+
+ // load gamma from xptr
+ for(int i = 0; i < levels; i++) {
+ float cur = expf(xptr[i]);
+ gamma[i] += cur;
+ }
+
+ // normalize to range
+ float top = gamma[255];
+ for(int i = 0; i < levels; i++)
+ gamma[i] = (gamma[i] * 255) / top;
+ //gamma[0] = 0;
+
+ // clear all the allocated memory
+ delete [] locations;
+
+ cvReleaseMat(&A);
+ cvReleaseMat(&b);
+ cvReleaseMat(&x);
+
+ cvReleaseMat(&inputCurves);
+ cvReleaseMat(&inputshutters);
+ cvReleaseMat(&weighting);
+}
View
23 CameraGammaCalibrate/src/GammaCalibration.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "ofxOpenCv.h"
+#include <fstream>
+
+class GammaCalibration {
+public:
+ static void calibrate(vector<ofImage>& images, vector<float>& shutterTimes,
+ vector<float>& grayGamma,
+ int sampledLocations = 45, float smoothness = 1);
+
+ static void calibrate(vector<ofImage>& images, vector<float>& shutterTimes,
+ vector<float>& redGamma, vector<float>& greenGamma, vector<float>& blueGamma,
+ int sampledLocations = 45, float smoothness = 1);
+
+private:
+ static const int levels = 256;
+
+ static void calibrate(vector<ofImage>& images, vector<float>& shutterTimes,
+ vector<float>& gamma,
+ int offset, int step,
+ int sampledLocations, float smoothness);
+};
View
67 CameraGammaCalibrate/src/LutFilter.cpp
@@ -0,0 +1,67 @@
+#include "LutFilter.h"
+
+LutFilter::LutFilter() {
+}
+
+void LutFilter::setup(string filename) {
+ ifstream file;
+ file.open(ofToDataPath(filename).c_str());
+ if(file.is_open()) {
+ string line;
+ int level = 0;
+ while (!file.eof()) {
+ getline(file, line);
+ vector<string> split;
+ tokenize(line, split, ",");
+ if(split.size() == 3) {
+ type = OF_IMAGE_COLOR;
+ for(int i = 0; i < 3; i++)
+ rgbGamma[level][i] = toInt(split[i]);
+ } else if(split.size() == 1) {
+ type = OF_IMAGE_GRAYSCALE;
+ grayGamma[level] = toInt(split[0]);
+ }
+ level++;
+ }
+ file.close();
+ }
+}
+
+void LutFilter::tokenize(const string& str, vector<string>& tokens, const string& delimiters) {
+ int lastPos = str.find_first_not_of(delimiters, 0);
+ int pos = str.find_first_of(delimiters, lastPos);
+ while (string::npos != pos || string::npos != lastPos) {
+ tokens.push_back(str.substr(lastPos, pos - lastPos));
+ lastPos = str.find_first_not_of(delimiters, pos);
+ pos = str.find_first_of(delimiters, lastPos);
+ }
+}
+
+int LutFilter::toInt(string str) {
+ stringstream stream;
+ stream << str;
+ int out;
+ stream >> out;
+ return out;
+}
+
+void LutFilter::filter(ofImage& image) {
+ if(type != image.type) {
+ ofLog(OF_LOG_ERROR, "Image type does not match LUT type.");
+ return;
+ }
+ int n = (int) image.getWidth() * (int) image.getHeight();
+ unsigned char* pixels = image.getPixels();
+ if(type == OF_IMAGE_COLOR) {
+ unsigned char* end = &pixels[n * 3];
+ while(pixels != end) {
+ *(pixels++) = rgbGamma[*pixels][0];
+ *(pixels++) = rgbGamma[*pixels][1];
+ *(pixels++) = rgbGamma[*pixels][2];
+ }
+ } else if(type == OF_IMAGE_GRAYSCALE) {
+ unsigned char* end = &pixels[n];
+ while(pixels != end)
+ *(pixels++) = grayGamma[*pixels];
+ }
+}
View
21 CameraGammaCalibrate/src/LutFilter.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include <fstream>
+#include "ofMain.h"
+
+class LutFilter {
+public:
+ LutFilter();
+ void setup(string filename);
+ void filter(ofImage& image);
+
+private:
+ static const int levels = 256;
+
+ int type;
+ unsigned char grayGamma[levels];
+ unsigned char rgbGamma[levels][3];
+
+ static void tokenize(const string& str, vector<string>& tokens, const string& delimiters);
+ static int toInt(string str);
+};
View
142 CameraGammaCalibrate/src/ThreadedSolver.cpp
@@ -0,0 +1,142 @@
+#include "ThreadedSolver.h"
+
+ThreadedSolver::ThreadedSolver() {
+}
+
+void ThreadedSolver::setup() {
+ directory = "firefly";
+ string extension = ".png";
+ int sampledshutters = 64;
+ sampledLocations = 64;
+ smoothness = .1;
+
+ #ifdef DOUBLECHECK
+ lut.setup("firefly-lut.csv");
+ #endif
+
+ ofxDirList dirList;
+ int n = dirList.listDir(directory);
+ cout << n << " images available." << endl;
+
+ vector<int> shutters;
+ for(int i = 0; i < n; i++) {
+ string curFile = dirList.getName(i);
+ stringstream name;
+ name << curFile.substr(0, curFile.rfind("."));
+ int shutter;
+ name >> shutter;
+ shutters.push_back(shutter);
+ }
+
+ sort(shutters.begin(), shutters.end());
+
+ cout << "Loading images from " << directory << "/ :";
+ for(int i = 0; i < sampledshutters; i++) {
+ int j = (i * n) / sampledshutters;
+ int curshutter = shutters[j];
+ cout << " " << j << "/" << curshutter;
+ images.push_back(ofImage());
+ images.back().loadImage(directory + "/" + ofToString(curshutter) + extension);
+ #ifdef DOUBLECHECK
+ lut.filter(images.back());
+ #endif
+ shutterTimes.push_back(curshutter);
+ }
+ cout << endl;
+ cout << "Loaded " << images.size() << " images." << endl;
+
+ ofImage prototype;
+ prototype.loadImage(dirList.getPath(0));
+ type = prototype.type;
+
+ if(type == OF_IMAGE_COLOR) {
+ redGammaSum.resize(levels);
+ greenGammaSum.resize(levels);
+ blueGammaSum.resize(levels);
+ cout << "Computing color gamma." << endl;
+ } else if(type == OF_IMAGE_GRAYSCALE) {
+ grayGammaSum.resize(levels);
+ cout << "Computing grayscale gamma." << endl;
+ }
+
+ iterations = 0;
+
+ ready = false;
+
+ startThread();
+}
+
+void ThreadedSolver::threadedFunction() {
+ while(true) {
+ iterations++;
+
+ // iteratively compute gamma
+ vector<float> curRedGamma, curGreenGamma, curBlueGamma;
+ vector<float> curGrayGamma;
+ cout << "Computing iteration " << iterations << endl;
+ if(type == OF_IMAGE_COLOR) {
+ GammaCalibration::calibrate(images, shutterTimes,
+ curRedGamma, curGreenGamma, curBlueGamma,
+ sampledLocations, smoothness);
+ } else if(type == OF_IMAGE_GRAYSCALE) {
+ GammaCalibration::calibrate(images, shutterTimes,
+ curGrayGamma,
+ sampledLocations, smoothness);
+ }
+
+ ready = false;
+
+ // sum gammas
+ for(int i = 0; i < levels; i++) {
+ if(type == OF_IMAGE_COLOR) {
+ if(isnan(curRedGamma[i]) || isnan(curGreenGamma[i]) || isnan(curBlueGamma[i])) {
+ cout << "Not enough data." << endl;
+ exit(1);
+ }
+ redGammaSum[i] += curRedGamma[i];
+ greenGammaSum[i] += curGreenGamma[i];
+ blueGammaSum[i] += curBlueGamma[i];
+ } else if(type == OF_IMAGE_GRAYSCALE) {
+ if(isnan(curGrayGamma[i])) {
+ cout << "Not enough data." << endl;
+ exit(1);
+ }
+ grayGammaSum[i] += curGrayGamma[i];
+ }
+ }
+
+ // average gamma
+ if(type == OF_IMAGE_COLOR) {
+ redGamma.clear();
+ greenGamma.clear();
+ blueGamma.clear();
+ } else if(type == OF_IMAGE_GRAYSCALE) {
+ grayGamma.clear();
+ }
+ for(int i = 0; i < levels; i++) {
+ if(type == OF_IMAGE_COLOR) {
+ redGamma.push_back(redGammaSum[i] / iterations);
+ greenGamma.push_back(greenGammaSum[i] / iterations);
+ blueGamma.push_back(blueGammaSum[i] / iterations);
+ } else if(type == OF_IMAGE_GRAYSCALE) {
+ grayGamma.push_back(grayGammaSum[i] / iterations);
+ }
+ }
+
+ // write updated gamma
+ ofstream curves;
+ string filename = "curves-" + directory + "-" + ofToString(iterations) + ".csv";
+ curves.open(filename.c_str());
+ for(int i = 0; i < levels; i++) {
+ if(type == OF_IMAGE_COLOR) {
+ curves << redGamma[i] << "," << greenGamma[i] << "," << blueGamma[i] << endl;
+ } else if(type == OF_IMAGE_GRAYSCALE) {
+ curves << grayGamma[i] << endl;
+ }
+ }
+ curves.flush();
+ curves.close();
+
+ ready = true;
+ }
+}
View
42 CameraGammaCalibrate/src/ThreadedSolver.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include "ofMain.h"
+#include "GammaCalibration.h"
+#include "ofxDirList.h"
+#include "LutFilter.h"
+#include "ofxThread.h"
+#include <fstream>
+
+// use DOUBLECHECK to load back in the LUT and see how linear the results are
+//#define DOUBLECHECK
+
+class ThreadedSolver : public ofxThread {
+public:
+ ThreadedSolver();
+
+ void setup();
+
+ bool ready;
+
+ LutFilter lut;
+
+ vector<ofImage> images;
+ vector<float> shutterTimes;
+ string directory;
+ int sampledLocations;
+ float smoothness;
+
+ const static int levels = 256;
+ int iterations;
+
+ int type;
+
+ vector<float> grayGammaSum;
+ vector<float> grayGamma;
+
+ vector<float> redGammaSum, greenGammaSum, blueGammaSum;
+ vector<float> redGamma, greenGamma, blueGamma;
+
+protected:
+ void threadedFunction();
+};
View
62 CameraGammaCalibrate/src/gsolve.cpp
@@ -0,0 +1,62 @@
+#include "gsolve.hpp"
+
+using namespace cv;
+#define db at<double>
+#define uc at<unsigned char>
+
+void gsolve(const Mat& Z, const Mat& B, float l, const Mat& w,
+ Mat& g, Mat& lE) {
+ const int n = 256;
+
+ Mat A = Mat::zeros(Z.rows * Z.cols + n - 1, n + Z.rows, CV_64FC1);
+ Mat b = Mat::zeros(A.rows, 1, CV_64FC1);
+
+ // Include the data-fitting equations
+ int k = 0;
+ for(int i = 0; i < Z.rows; i++) {
+ for(int j = 0; j < Z.cols; j++) {
+ unsigned char curZ = Z.uc(i, j);
+ float wij = w.db(curZ);
+ A.db(k, curZ) = wij;
+ A.db(k, n + i) = -wij;
+ b.db(k) = wij * B.db(j);
+ k++;
+ }
+ }
+
+ // Fix the curve by setting its middle value to 0
+ A.db(k, 128) = 1;
+ k++;
+
+ // Include the smoothness equations
+ for(int i = 1; i < n - 1; i++) {
+ A.db(k, i - 1) = l * w.db(i);
+ A.db(k, i + 0) = l * w.db(i) * -2;
+ A.db(k, i + 1) = l * w.db(i);
+ k++;
+ }
+
+ // Solve the system using SVD
+ Mat x = Mat::zeros(A.cols, 1, CV_64FC1);
+ solve(A, b, x, CV_SVD);
+
+ g = x.rowRange(0, n).clone();
+ exp(g, g);
+ lE = x.rowRange(n, x.rows).clone();
+}
+
+Mat buildWeights() {
+ const int n = 256;
+
+ Mat w = Mat::zeros(n, 1, CV_64FC1);
+ const int zmax = n - 1;
+ const int zmin = 0;
+ const int zmid = (zmin + zmax) / 2;
+ for(int z = 0; z < zmid; z++) {
+ w.db(z) = z - zmin;
+ }
+ for(int z = zmid; z < n; z++) {
+ w.db(z) = zmax - z;
+ }
+ return w;
+}
View
42 CameraGammaCalibrate/src/gsolve.hpp
@@ -0,0 +1,42 @@
+#pragma once
+
+#include "opencv2/opencv.hpp"
+
+//
+// This code was ported from Matlab code provided in the following paper:
+//
+// P. E. Debevec and J. Malik, "Recovering High Dynamic Range Radiance Maps from
+// Photographs," Proceedings of SIGGRAPH 1997, ACM Press / ACM SIGGRAPH, 369-
+// 378, 1997.
+//
+
+//
+// gsolve.m - Solve for imaging system response function
+//
+// Given a set of pixel values observed for several pixels in several
+// images with different exposure times, this function returns the
+// imaging system?s response function g as well as the log film irradiance
+// values for the observed pixels.
+//
+// Assumes:
+//
+// Zmin = 0
+// Zmax = 255
+//
+// Arguments:
+//
+// Z(i,j) is the pixel values of pixel location number i in image j
+// B(j) is the log delta t, or log shutter speed, for image j
+// l is lamdba, the constant that determines the amount of smoothness
+// w(z) is the weighting function value for pixel value z
+//
+// Returns:
+//
+// g(z) is the log exposure corresponding to pixel value z
+// lE(i) is the log film irradiance at pixel location i
+//
+
+void gsolve(const cv::Mat& Z, const cv::Mat& B, float l, const cv::Mat& w,
+ cv::Mat& g, cv::Mat& lE);
+
+cv::Mat buildWeights();
View
9 CameraGammaCalibrate/src/main.cpp
@@ -0,0 +1,9 @@
+#include "ofMain.h"
+#include "testApp.h"
+#include "ofAppGlutWindow.h"
+
+int main() {
+ ofAppGlutWindow window;
+ ofSetupOpenGL(&window, 256, 256, OF_WINDOW);
+ ofRunApp(new testApp());
+}
View
43 CameraGammaCalibrate/src/testApp.cpp
@@ -0,0 +1,43 @@
+#include "testApp.h"
+
+void testApp::setup() {
+ solver.setup();
+ ofBackground(255, 255, 255);
+}
+
+void testApp::update() {
+}
+
+void testApp::draw() {
+ if(solver.ready) {
+ int width = (int) ofGetWidth();
+ int height = (int) ofGetHeight();
+ int levels = solver.levels;
+
+ if(solver.type == OF_IMAGE_COLOR) {
+ ofSetColor(255, 0, 0);
+ glBegin(GL_LINE_STRIP);
+ for(int i = 0; i < levels; i++)
+ glVertex2f(i, height - solver.redGamma[i]);
+ glEnd();
+
+ ofSetColor(0, 255, 0);
+ glBegin(GL_LINE_STRIP);
+ for(int i = 0; i < levels; i++)
+ glVertex2f(i, height - solver.greenGamma[i]);
+ glEnd();
+
+ ofSetColor(0, 0, 255);
+ glBegin(GL_LINE_STRIP);
+ for(int i = 0; i < levels; i++)
+ glVertex2f(i, height - solver.blueGamma[i]);
+ glEnd();
+ } else if(solver.type == OF_IMAGE_GRAYSCALE) {
+ ofSetColor(0, 0, 0);
+ glBegin(GL_LINE_STRIP);
+ for(int i = 0; i < levels; i++)
+ glVertex2f(i, height - solver.grayGamma[i]);
+ glEnd();
+ }
+ }
+}
View
13 CameraGammaCalibrate/src/testApp.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "ofMain.h"
+#include "ThreadedSolver.h"
+
+class testApp : public ofBaseApp {
+public:
+ void setup();
+ void update();
+ void draw();
+
+ ThreadedSolver solver;
+};
Please sign in to comment.
Something went wrong with that request. Please try again.