package pl.wroc.pwr.image.model; import pl.wroc.pwr.image.ILabImage; import pl.wroc.pwr.imagechannel.IImageChannel; import pl.wroc.pwr.imagechannel.IPixel; import pl.wroc.pwr.imagechannel.model.ImageChannel; /** * Lab space image * * @author Mariusz Paradowski */ public class LabImage extends MultiChannelImage implements ILabImage { /** * */ private static final long serialVersionUID = -1119924849403833820L; public final static int CHANNEL_L = 0; public final static int CHANNEL_a = 1; public final static int CHANNEL_b = 2; public LabImage( int sizeX, int sizeY ) { super( new IImageChannel[ ]{ new ImageChannel( sizeX, sizeY, ILabImage.MIN_L, ILabImage.MAX_L ), new ImageChannel( sizeX, sizeY, ILabImage.MIN_a, ILabImage.MAX_a ), new ImageChannel( sizeX, sizeY, ILabImage.MIN_b, ILabImage.MAX_b ) } ); } public LabImage(int[] size) { this( size[ IPixel.X ], size[ IPixel.Y ] ); } public IImageChannel getLChannel() { return this.getChannel( LabImage.CHANNEL_L ); } public IImageChannel getaChannel() { return this.getChannel( LabImage.CHANNEL_a ); } public IImageChannel getbChannel() { return this.getChannel( LabImage.CHANNEL_b ); } public void setLChannel( IImageChannel channel ) { this.setChannel( channel, LabImage.CHANNEL_L ); } public void setaChannel( IImageChannel channel ) { this.setChannel( channel, LabImage.CHANNEL_a ); } public void setbChannel( IImageChannel channel ) { this.setChannel( channel, LabImage.CHANNEL_b ); } @Override public String getChannelName(int number) { switch (number) { case LabImage.CHANNEL_L: return "L"; case LabImage.CHANNEL_a: return "a"; case LabImage.CHANNEL_b: return "b"; default: return null; } } }