Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r1375 - trunk/Engine/ImageTraversers


Chronological Thread 
  • From: sparker@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r1375 - trunk/Engine/ImageTraversers
  • Date: Tue, 8 May 2007 20:59:09 -0600 (MDT)

Author: sparker
Date: Tue May  8 20:59:08 2007
New Revision: 1375

Modified:
   trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc
   trunk/Engine/ImageTraversers/DeadlineImageTraverser.h
Log:
Added Pete's contrast metric


Modified: trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc
==============================================================================
--- trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc      (original)
+++ trunk/Engine/ImageTraversers/DeadlineImageTraverser.cc      Tue May  8 
20:59:08 2007
@@ -95,6 +95,8 @@
         priority = FIFO;
       else if(priorityString == "luminancevariance")
         priority = LuminanceVariance;
+      else if(priorityString == "contrast")
+        priority = Contrast;
       else
         throw IllegalArgument("DeadlineImageTraverser -priority, bad 
priority", i, args);
     } else if(arg == "-refinmentRatio"){
@@ -401,8 +403,8 @@
 void DeadlineImageTraverser::computePriority(Tile* tile, const Fragment& 
frag) const
 {
   if(priority == LuminanceVariance){
-    double sum;
-    double sum2;
+    double sum = 0;
+    double sum2 = 0;
     for(int i=frag.begin();i<frag.end();i++){
       Color::ComponentType luminance = frag.getColor(i).luminance();
       sum += luminance;
@@ -411,6 +413,17 @@
     int n = frag.end()-frag.begin();
     Color::ComponentType variance = (sum2 - sum * sum/n)/(n-1);
     tile->priority = variance * tile->xmag * tile->ymag;
+  } else if(priority == Contrast){
+    Color::ComponentType min, max;
+    min = max = frag.getColor(frag.begin()).luminance();
+    for(int i=frag.begin()+1;i<frag.end();i++){
+      Color::ComponentType luminance = frag.getColor(i).luminance();
+      if(luminance < min)
+        min = luminance;
+      if(luminance > max)
+        max = luminance;
+    }
+    tile->priority = (max-min)/(max+min) * tile->xmag  * tile->ymag ;
   } else {
     tile->priority = tile->xmag * tile->ymag;
   }

Modified: trunk/Engine/ImageTraversers/DeadlineImageTraverser.h
==============================================================================
--- trunk/Engine/ImageTraversers/DeadlineImageTraverser.h       (original)
+++ trunk/Engine/ImageTraversers/DeadlineImageTraverser.h       Tue May  8 
20:59:08 2007
@@ -87,7 +87,7 @@
     int top_tiles;
 
     enum PriorityScheme {
-      FIFO, LuminanceVariance
+      FIFO, LuminanceVariance, Contrast
     };
     PriorityScheme priority;
 




  • [MANTA] r1375 - trunk/Engine/ImageTraversers, sparker, 05/08/2007

Archive powered by MHonArc 2.6.16.

Top of page