Changeset 7496


Ignore:
Timestamp:
01/10/11 16:18:13 (9 years ago)
Author:
curtis
Message:

Fix signedness averaging problem with convertTo8Bit method.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/components/loci-plugins/src/loci/plugins/util/ImageProcessorReader.java

    r6881 r7496  
    2626package loci.plugins.util; 
    2727 
     28import ij.IJ; 
    2829import ij.process.ByteProcessor; 
    2930import ij.process.FloatProcessor; 
     
    4041import loci.formats.ImageTools; 
    4142import loci.formats.ReaderWrapper; 
     43import loci.plugins.BF; 
    4244 
    4345/** 
     
    240242        double average = 0; 
    241243        for (int p=0; p<valuesPerBin; p++) { 
    242           average += shortTable[c][i * valuesPerBin + p]; 
     244          final int index = i * valuesPerBin + p; 
     245          final int value = 0xffff & shortTable[c][index]; 
     246          average += value; 
    243247        } 
    244248        average /= valuesPerBin; 
     
    246250      } 
    247251    } 
     252 
     253    if (IJ.debugMode) { 
     254      final StringBuilder sb = new StringBuilder(); 
     255      BF.debug("Downsampled 16-bit LUT to 8-bit:"); 
     256 
     257      BF.debug("shortTable = {"); 
     258      for (int i=0; i<shortTable.length; i++) { 
     259        sb.setLength(0); 
     260        sb.append("\t{"); 
     261        for (int j=0; j<shortTable[i].length; j++) { 
     262          sb.append(" "); 
     263          sb.append(shortTable[i][j]); 
     264        } 
     265        sb.append(" }"); 
     266        BF.debug(sb.toString()); 
     267      } 
     268      BF.debug("}"); 
     269 
     270      BF.debug("byteTable = {"); 
     271      for (int i=0; i<byteTable.length; i++) { 
     272        sb.setLength(0); 
     273        sb.append("\t{"); 
     274        for (int j=0; j<byteTable[i].length; j++) { 
     275          sb.append(" "); 
     276          sb.append(byteTable[i][j]); 
     277        } 
     278        sb.append(" }"); 
     279        BF.debug(sb.toString()); 
     280      } 
     281      BF.debug("}"); 
     282 
     283    } 
     284 
    248285    return byteTable; 
    249286  } 
Note: See TracChangeset for help on using the changeset viewer.