Changeset 7999


Ignore:
Timestamp:
05/08/12 14:40:22 (7 years ago)
Author:
aivar
Message:

SLIM Plugin: Tidying up. More work on #689, masking.

Location:
trunk/projects/slim-plugin/src/main/java/loci/slim
Files:
7 edited
1 moved

Legend:

Unmodified
Added
Removed
  • trunk/projects/slim-plugin/src/main/java/loci/slim/fitting/images/AbstractBaseFittedImage.java

    r7996 r7999  
    7373    private MyStackWindow _stackWindow; 
    7474    private double _values[][]; 
    75     private IColorizedFittedImage[] _fittedImages; 
     75    private IFittedImageSlice[] _fittedImages; 
    7676    private HistogramDataNode[] _dataChannels; 
    7777    private HistogramDataGroup _histogramData; 
    78     private IColorizedFittedImage _fittedImage; 
     78    private IFittedImageSlice _fittedImage; 
    7979    private Mask _mask; 
    8080     
     
    9797         
    9898        // building a list of displayed images 
    99         List<IColorizedFittedImage> fittedImageList 
    100                 = new ArrayList<IColorizedFittedImage>(); 
     99        List<IFittedImageSlice> fittedImageList 
     100                = new ArrayList<IFittedImageSlice>(); 
    101101         
    102102        // building a list of HistogramDataChannels 
     
    113113             
    114114            // build the actual displayed image 
    115             IColorizedFittedImage fittedImage = null; 
     115            IFittedImageSlice fittedImage = null; 
    116116            if (colorizeGrayScale) { 
    117117                fittedImage 
     
    149149         
    150150        _fittedImages 
    151                 = fittedImageList.toArray(new IColorizedFittedImage[0]); 
     151                = fittedImageList.toArray(new IFittedImageSlice[0]); 
    152152        _dataChannels 
    153153                = dataChannelList.toArray(new HistogramDataNode[0]); 
     
    175175     */ 
    176176    public void setColorModel(IndexColorModel colorModel) { 
    177         for (IColorizedFittedImage fittedImage : _fittedImages) { 
     177        for (IFittedImageSlice fittedImage : _fittedImages) { 
    178178            fittedImage.setColorModel(colorModel); 
    179179        } 
     
    228228        redisplay(minMaxLUT); 
    229229    } 
    230      
     230 
     231    /** 
     232     * Redraws the entire image after a masking change. 
     233     *  
     234     * @param mask  
     235     */ 
    231236    public void redraw(Mask mask) { 
    232237        if (mask != _mask) { 
     
    236241                double[] minMaxLUT = _histogramData.getMinMaxLUT(); //TODO too much repeated code from "redisplay()" 
    237242                minMaxLUT = PaletteFix.adjustMinMax(minMaxLUT[0], minMaxLUT[1]); 
     243                System.out.println("image " + _title + " min max " + minMaxLUT[0] + " " + minMaxLUT[1]); 
    238244                if (_colorizeGrayScale) { 
    239245                    // redraw all images with new LUT 
    240                     for (IColorizedFittedImage fittedImage : _fittedImages) { 
     246                    for (IFittedImageSlice fittedImage : _fittedImages) { 
    241247                        fittedImage.setMinAndMax(minMaxLUT[0], minMaxLUT[1]); //TODO we are redrawing all images anyway, then the current one again below... 
    242248                    } 
     
    287293            if (_colorizeGrayScale) { 
    288294                // redraw all images with new LUT 
    289                 for (IColorizedFittedImage fittedImage : _fittedImages) { 
     295                for (IFittedImageSlice fittedImage : _fittedImages) { 
    290296                    fittedImage.setMinAndMax(minMaxLUT[0], minMaxLUT[1]); 
    291297                } 
  • trunk/projects/slim-plugin/src/main/java/loci/slim/fitting/images/ColorizedFittedImage.java

    r7994 r7999  
    4949 * @author Aivar Grislis grislis at wisc dot edu 
    5050 */ 
    51 public class ColorizedFittedImage implements IColorizedFittedImage { 
     51public class ColorizedFittedImage implements IFittedImageSlice { 
    5252    private static final float SATURATION = 0.75f; 
    5353    IGrayScalePixelValue _grayScalePixelValue; 
     
    9898    @Override 
    9999    public void setMinAndMax(double min, double max) { 
    100         if (min != _min || max != max) { 
     100        if (min != _min || max != _max) { 
    101101            _min = min; 
    102102            _max = max; 
     
    139139     */ 
    140140    private Color getColorizedGrayColor(int grayValue, double value) { 
    141         if (_max == _min) { 
     141        if (_max == _min 
     142                || Double.isNaN(value) 
     143                || value < _min || value > _max) { 
    142144            return getGrayColor(grayValue); 
    143145        } 
     
    148150        // convert 0.0..1.0 to 1..254 (colors 0 and 255 have a special use) 
    149151        int index = 1 + (int) (value * 253); 
    150          
     152 
    151153        // get color 
    152154        Color color = new Color(_indexColorModel.getRGB(index)); 
  • trunk/projects/slim-plugin/src/main/java/loci/slim/fitting/images/FloatFittedImage.java

    r7994 r7999  
    4444 * @author Aivar Grislis grislis at wisc dot edu 
    4545 */ 
    46 public class FloatFittedImage implements IColorizedFittedImage { 
     46public class FloatFittedImage implements IFittedImageSlice { 
    4747    int _width; 
    4848    int _height; 
  • trunk/projects/slim-plugin/src/main/java/loci/slim/fitting/images/IFittedImage.java

    r7996 r7999  
    4141 
    4242/** 
    43  * 
     43 * Interface for a fitted image. 
     44 *  
    4445 * @author Aivar Grislis grislis at wisc dot edu 
    4546 */ 
  • trunk/projects/slim-plugin/src/main/java/loci/slim/fitting/images/IFittedImageSlice.java

    r7994 r7999  
    4040 
    4141/** 
    42  * 
     42 * This interface is for a 2D slice of the fitted image. 
     43 *  
    4344 * @author Aivar Grislis grislis at wisc dot edu 
    4445 */ 
    45 public interface IColorizedFittedImage { 
    46      
     46public interface IFittedImageSlice { 
     47 
     48    /** 
     49     * Initializes a slice. 
     50     *  
     51     * @param width 
     52     * @param height 
     53     * @param channel 
     54     * @param indexColorModel  
     55     */ 
    4756    public void init(int width, int height, int channel, 
    4857            IndexColorModel indexColorModel); 
    49      
     58 
     59    /** 
     60     * Changes LUT. 
     61     *  
     62     * @param indexColorModel  
     63     */ 
    5064    public void setColorModel(IndexColorModel indexColorModel); 
    51      
     65 
     66    /** 
     67     * Gets the underlying IJ image processor. 
     68     *  
     69     * @return  
     70     */ 
    5271    public ImageProcessor getImageProcessor(); 
    53      
     72 
     73    /** 
     74     * Sets the minimum and maximum values for the LUT range. 
     75     *  
     76     * @param min 
     77     * @param max  
     78     */ 
    5479    public void setMinAndMax(double min, double max); 
    55      
     80 
     81    /** 
     82     * Draws a single pixel with current LUT and LUT range. 
     83     *  
     84     * @param x 
     85     * @param y 
     86     * @param value  
     87     */ 
    5688    public void draw(int x, int y, double value); 
    5789} 
  • trunk/projects/slim-plugin/src/main/java/loci/slim/histogram/HistogramDataNode.java

    r7996 r7999  
    8484        _maskNode = new MaskNode(maskGroup, new IMaskNodeListener () { 
    8585            public void updateMask(Mask mask) { 
    86                 System.out.println("HistogramDataNode.setMaskGroup IMaskNodeListener.updateMask " + mask); 
    87                 if (null != mask) { 
    88                     boolean[][] bits = mask.getBits(); 
    89                     if (null != bits) { 
    90                         System.out.println("mask excludes " + countBits(bits)); 
    91                     } 
    92                 } 
    9386                setOtherMask(mask); 
    94                 //TODO redraw, here or in setOtherMask() 
    9587                _fittedImage.redraw(mask); 
    9688            } 
     
    122114     */ 
    123115    public void setOtherMask(Mask mask) { 
    124         System.out.print("incoming other mask " + mask); 
    125         if (null != mask) System.out.print(" excludes " + countBits(mask.getBits())); 
    126         System.out.println(); 
    127          
    128116        _otherMask = mask; 
    129117        if (null == _selfMask) { 
     
    135123            _totalMask = _selfMask.add(mask); 
    136124        } 
    137          
    138         System.out.print("I am " + this + " setOtherMask, total mask " + _totalMask); 
    139         if (null != _totalMask) System.out.print(" excludes " + countBits(_totalMask.getBits())); 
    140         System.out.println(); 
    141125    } 
    142126 
     
    163147            _totalMask = mask.add(_otherMask); 
    164148        } 
    165  
    166         System.out.print("I am " + this); 
    167         if (null != _totalMask) System.out.print(" setSelfMask, total mask excludes " + countBits(_totalMask.getBits())); 
    168         System.out.println(); 
    169     } 
    170      
    171     public int countBits(boolean[][] bits) { 
    172         int counter = 0; 
    173         if (null != bits) { 
    174             for (int y = 0; y < bits[0].length; ++y) { 
    175                 for (int x = 0; x < bits.length; ++x) { 
    176                     if (!bits[x][y]) ++counter; 
    177                 } 
    178             } 
    179         } 
    180         return counter; 
    181149    } 
    182150 
     
    276244            selfMask = new Mask(bits); 
    277245        } 
    278  
    279         System.out.println("HistogramDataNode.propagateMask " + selfMask); 
    280246        setSelfMask(selfMask); 
    281247        _maskNode.updateSelfMask(selfMask); 
     
    288254    public void rescindMask() { 
    289255        Mask selfMask = null; 
    290          
    291         System.out.println("HistogramDataNode.rescindMask"); 
    292256        setSelfMask(selfMask); 
    293257        _maskNode.updateSelfMask(selfMask); 
  • trunk/projects/slim-plugin/src/main/java/loci/slim/histogram/HistogramTool.java

    r7994 r7999  
    250250            // iii) in the future more UI interactions will wind up here 
    251251            // 
     252            //TODO if the user drags a new LUT range this doesn't get called! 
     253             
     254          System.out.println("changed min/maxView " + minView + " " + maxView + " min/maxLUT " + minLUT + " " + maxLUT);   
     255             
     256             
    252257            _histogramDataGroup.redisplay(); 
    253258        } 
     
    313318            synchronized (_synchObject) { 
    314319                _histogramDataGroup.setMinMaxLUT(minLUT, maxLUT); 
     320                if (_uiPanel.getExcludePixels()) { 
     321                    _histogramDataGroup.excludePixels(true); 
     322                } 
    315323            } 
    316324        } 
     
    457465            synchronized (_synchObject) { 
    458466                _histogramDataGroup.excludePixels(excludePixels); 
    459                 //TODO ARG 
    460                 System.out.println("set exclude pixels " + excludePixels); 
    461467            } 
    462468        } 
  • trunk/projects/slim-plugin/src/main/java/loci/slim/histogram/HistogramUIPanel.java

    r7994 r7999  
    277277 
    278278    /** 
     279     * Gets whether to hide out of range pixels. 
     280     *  
     281     * @return  
     282     */ 
     283    public boolean getExcludePixels() { 
     284        return _excludePixels; 
     285    } 
     286 
     287    /** 
    279288     * Sets whether to combine all channels. 
    280289     *  
Note: See TracChangeset for help on using the changeset viewer.