Revision: 39554
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39554
Author:   nazgul
Date:     2011-08-19 14:23:09 +0000 (Fri, 19 Aug 2011)
Log Message:
-----------
Camera tracking integration
===========================

Fixes for MSVC.

Modified Paths:
--------------
    branches/soc-2011-tomato/extern/libmv/ChangeLog
    branches/soc-2011-tomato/extern/libmv/libmv/tracking/sad.cc

Modified: branches/soc-2011-tomato/extern/libmv/ChangeLog
===================================================================
--- branches/soc-2011-tomato/extern/libmv/ChangeLog     2011-08-19 14:05:11 UTC 
(rev 39553)
+++ branches/soc-2011-tomato/extern/libmv/ChangeLog     2011-08-19 14:23:09 UTC 
(rev 39554)
@@ -1,3 +1,15 @@
+commit 5299ea67043459eda147950e589c2d327a8fbced
+Author: Matthias Fauconneau <[email protected]>
+Date:   Fri Aug 19 16:05:54 2011 +0200
+
+    sqrt takes double precision.
+
+commit 9f9221ce151d788c49b48f6f293ab2e2f8813978
+Author: Matthias Fauconneau <[email protected]>
+Date:   Fri Aug 19 16:04:37 2011 +0200
+
+    MSVC compatibility: heap allocate pattern, explicit float cast.
+
 commit 702658d2f8616964a6eeb3743fd85e97ac7ff09d
 Author: Matthias Fauconneau <[email protected]>
 Date:   Fri Aug 19 14:59:24 2011 +0200

Modified: branches/soc-2011-tomato/extern/libmv/libmv/tracking/sad.cc
===================================================================
--- branches/soc-2011-tomato/extern/libmv/libmv/tracking/sad.cc 2011-08-19 
14:05:11 UTC (rev 39553)
+++ branches/soc-2011-tomato/extern/libmv/libmv/tracking/sad.cc 2011-08-19 
14:23:09 UTC (rev 39554)
@@ -122,6 +122,7 @@
   min=-1; //reset score since direct warped search match too well (but the 
wrong pattern).
 
   // 6D coordinate descent to find affine transform
+  ubyte match = new ubyte[size*size];
   float step = 0.5;
   for(int p = 0; p < 8; p++) { //foreach precision level
     for(int i = 0; i < 2; i++) { // iterate twice per precision level
@@ -130,7 +131,6 @@
         for(float x = -step; x <= step; x+=step) { //solve subproblem 
(evaluate only along one coordinate)
           mat32 t = m;
           t.data[d] += x;
-          ubyte match[size*size];
           //TODO: better performance would also allow a more exhaustive search
           SamplePattern(image,stride,t,match,size);
           uint sad = SAD(reference,match,size,size);
@@ -152,7 +152,6 @@
 
   // Compute Pearson product-moment correlation coefficient
   uint sX=0,sY=0,sXX=0,sYY=0,sXY=0;
-  ubyte match[size*size];
   SamplePattern(image,stride,m,match,size);
   SAD(reference,match,size,size);
   for(int i = 0; i < size; i++) {
@@ -166,9 +165,10 @@
       sXY += x*y;
     }
   }
+  delete[] match;
   const int N = size*size;
   sX /= N, sY /= N, sXX /= N, sYY /= N, sXY /= N;
-  return (sXY-sX*sY)/sqrt((sXX-sX*sX)*(sYY-sY*sY));
+  return (sXY-sX*sY)/sqrt(double((sXX-sX*sX)*(sYY-sY*sY)));
 }
 
 }  // namespace libmv

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to