code: public static <T extends ImageGray<T>>
  	void rgbToLab(Planar<T> rgb , Planar<GrayF32> lab ) {
  		lab.reshape(rgb.width,rgb.height,3);
  
  		if( rgb.getBandType() == GrayU8.class ) {
  			if (BoofConcurrency.USE_CONCURRENT) {
  				ImplColorLab_MT.rgbToLab_U8((Planar<GrayU8>) rgb, lab);
  			} else {
  				ImplColorLab.rgbToLab_U8((Planar<GrayU8>) rgb, lab);
  			}
  		} else if( rgb.getBandType() == GrayF32.class ) {
  			if(BoofConcurrency.USE_CONCURRENT ) {
  				ImplColorLab_MT.rgbToLab_F32((Planar<GrayF32>)rgb,lab);
  			} else {
  				ImplColorLab.rgbToLab_F32((Planar<GrayF32>)rgb,lab);
  			}
  		} else {
  			throw new IllegalArgumentException("Unsupported band type "+rgb.getBandType().getSimpleName());
  		}
  	}
docs: Convert a 3-channel {@link Planar} image from RGB into LAB.  RGB is assumed
  to have a range from 0:255
  
  NOTE: Input and output image can be the same instance.
  
  @param rgb (Input) RGB encoded image
  @param lab (Output) LAB encoded image. L = channel 0, A = channel 1, B = channel 2