@Override public void lookup(byte[] src, int srcPos, byte[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = lut[index(src[i++])]; }
alphaArray }; ByteLookupTable blut = new ByteLookupTable(0, tables); LookupOp op = new LookupOp(blut, null);
private LookupTable combineModalityVOILUT(int outBits) { float m = rescaleSlope; float b = rescaleIntercept; LookupTable modalityLUT = this.modalityLUT; LookupTable lut = this.voiLUT; if (lut == null) { float c = windowCenter; float w = windowWidth; if (w == 0 && modalityLUT != null) return modalityLUT.adjustOutBits(outBits); int size, offset; StoredValue inBits = modalityLUT != null ? new StoredValue.Unsigned(modalityLUT.outBits) : storedValue; if (w != 0) { size = Math.max(2,Math.abs(Math.round(w/m))); offset = Math.round((c-b)/m) - size/2; } else { offset = inBits.minValue(); size = inBits.maxValue() - inBits.minValue() + 1; } lut = outBits > 8 ? new ShortLookupTable(inBits, outBits, offset, size, m < 0) : new ByteLookupTable(inBits, outBits, offset, size, m < 0); } else { //TODO consider m+b lut = lut.adjustOutBits(outBits); } return modalityLUT != null ? modalityLUT.combine(lut) : lut; }
private LookupTable combineModalityVOILUT(int outBits) { float m = rescaleSlope; float b = rescaleIntercept; LookupTable modalityLUT = this.modalityLUT; LookupTable lut = this.voiLUT; if (lut == null) { float c = windowCenter; float w = windowWidth; if (w == 0 && modalityLUT != null) return modalityLUT.adjustOutBits(outBits); int size, offset; StoredValue inBits = modalityLUT != null ? new StoredValue.Unsigned(modalityLUT.outBits) : storedValue; if (w != 0) { size = Math.max(2,Math.abs(Math.round(w/m))); offset = Math.round((c-b)/m) - size/2; } else { offset = inBits.minValue(); size = inBits.maxValue() - inBits.minValue() + 1; } lut = outBits > 8 ? new ShortLookupTable(inBits, outBits, offset, size, m < 0) : new ByteLookupTable(inBits, outBits, offset, size, m < 0); } else { //TODO consider m+b lut = lut.adjustOutBits(outBits); } return modalityLUT != null ? modalityLUT.combine(lut) : lut; }
@Override public void lookup(short[] src, int srcPos, short[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = (short) (lut[index(src[i++])] & 0xff); }
invertArray[counter] = (byte) (255 - counter); BufferedImageOp invertFilter = new LookupOp(new ByteLookupTable(0, invertArray), null); return invertFilter.filter(image, null);
@Override public void lookup(short[] src, int srcPos, byte[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = lut[index(src[i++])]; }
return null; return new ByteLookupTable(inBits, outBits, offset, data);
@Override public void lookup(byte[] src, int srcPos, short[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = (short) (lut[index(src[i++])] & 0xff); }
return null; return new ByteLookupTable(inBits, outBits, offset, data);
@Override public void lookup(short[] src, int srcPos, byte[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = lut[index(src[i++])]; }
@Override public void lookup(byte[] src, int srcPos, short[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = (short) (lut[index(src[i++])] & 0xff); }
@Override public void lookup(byte[] src, int srcPos, byte[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = lut[index(src[i++])]; }
@Override public void lookup(short[] src, int srcPos, short[] dest, int destPos, int length) { for (int i = srcPos, endPos = srcPos + length, j = destPos; i < endPos;) dest[j++] = (short) (lut[index(src[i++])] & 0xff); }