/** * Create a ColorDeconvolutionStains for a default stain combination, and default max values (255 for all channels). * * @param stains * @return */ public static ColorDeconvolutionStains makeDefaultColorDeconvolutionStains(DEFAULT_CD_STAINS stains) { switch(stains) { case H_E: return new ColorDeconvolutionStains("H&E default", StainVector.makeDefaultStainVector(StainVector.DEFAULT_STAINS.HEMATOXYLIN), StainVector.makeDefaultStainVector(StainVector.DEFAULT_STAINS.EOSIN)); case H_DAB: return new ColorDeconvolutionStains("H-DAB default", StainVector.makeDefaultStainVector(StainVector.DEFAULT_STAINS.HEMATOXYLIN), StainVector.makeDefaultStainVector(StainVector.DEFAULT_STAINS.DAB)); } return null; }
public static StainVector parseStainVector(Locale locale, String name, String s) { if (s == null) return null; s = s.trim(); if (s.length() == 0) return null; if (s.length() == 1) { s = s.toLowerCase(); if (s.equals("h")) return StainVector.makeDefaultStainVector(DEFAULT_STAINS.HEMATOXYLIN); else if (s.equals("e")) return StainVector.makeDefaultStainVector(DEFAULT_STAINS.EOSIN); else if (s.equals("d")) return StainVector.makeDefaultStainVector(DEFAULT_STAINS.DAB); } double[] vector = parseStainValues(locale, s); if (vector != null) return new StainVector(name, vector[0], vector[1], vector[2]); // If we got here, we didn't find 3 numbers return null; }