@Override public LookupTable combine(LookupTable other) { short[] lut = this.lut; other.lookup(lut, 0, lut, 0, lut.length); this.outBits = other.outBits; return this; } }
public LookupTable createLUT(int outBits) { LookupTable lut = combineModalityVOILUT(presentationLUT != null ? log2(presentationLUT.length()) : outBits); if (presentationLUT != null) { lut = lut.combine(presentationLUT.adjustOutBits(outBits)); } else if (inverse) lut.inverse(); return 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; }
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 LookupTable combine(LookupTable other) { short[] lut = this.lut; other.lookup(lut, 0, lut, 0, lut.length); this.outBits = other.outBits; return this; } }
public LookupTable createLUT(int outBits) { LookupTable lut = combineModalityVOILUT(presentationLUT != null ? log2(presentationLUT.length()) : outBits); if (presentationLUT != null) { lut = lut.combine(presentationLUT.adjustOutBits(outBits)); } else if (inverse) lut.inverse(); return lut; }
@Override public LookupTable combine(LookupTable other) { byte[] lut = this.lut; if (other.outBits > 8) { short[] ss = new short[lut.length]; other.lookup(lut, 0, ss, 0, lut.length); return new ShortLookupTable(inBits, other.outBits, offset, ss); } other.lookup(lut, 0, lut, 0, lut.length); this.outBits = other.outBits; return this; }
@Override public LookupTable combine(LookupTable other) { byte[] lut = this.lut; if (other.outBits > 8) { short[] ss = new short[lut.length]; other.lookup(lut, 0, ss, 0, lut.length); return new ShortLookupTable(inBits, other.outBits, offset, ss); } other.lookup(lut, 0, lut, 0, lut.length); this.outBits = other.outBits; return this; }
switch (dest.getDataType()) { case DataBuffer.TYPE_BYTE: lookup(sm, ((DataBufferByte) src).getData(), destsm, ((DataBufferByte) dest).getData()); return; case DataBuffer.TYPE_USHORT: lookup(sm, ((DataBufferByte) src).getData(), destsm, ((DataBufferUShort) dest).getData()); return; switch (dest.getDataType()) { case DataBuffer.TYPE_BYTE: lookup(sm, ((DataBufferUShort) src).getData(), destsm, ((DataBufferByte) dest).getData()); return; case DataBuffer.TYPE_USHORT: lookup(sm, ((DataBufferUShort) src).getData(), destsm, ((DataBufferUShort) dest).getData()); return; switch (dest.getDataType()) { case DataBuffer.TYPE_BYTE: lookup(sm, ((DataBufferShort) src).getData(), destsm, ((DataBufferByte) dest).getData()); return; case DataBuffer.TYPE_USHORT: lookup(sm, ((DataBufferShort) src).getData(), destsm, ((DataBufferUShort) dest).getData()); return;
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, short[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, short[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, short[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, short[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
private void lookup(ComponentSampleModel sm, byte[] src, ComponentSampleModel destsm, byte[] dest) { int w = sm.getWidth(); int h = sm.getHeight(); int stride = sm.getScanlineStride(); int destStride = destsm.getScanlineStride(); for (int y = 0; y < h; y++) lookup(src, y * stride, dest, y * destStride, w); }
switch (dest.getDataType()) { case DataBuffer.TYPE_BYTE: lookup(sm, ((DataBufferByte) src).getData(), destsm, ((DataBufferByte) dest).getData()); return; case DataBuffer.TYPE_USHORT: lookup(sm, ((DataBufferByte) src).getData(), destsm, ((DataBufferUShort) dest).getData()); return; switch (dest.getDataType()) { case DataBuffer.TYPE_BYTE: lookup(sm, ((DataBufferUShort) src).getData(), destsm, ((DataBufferByte) dest).getData()); return; case DataBuffer.TYPE_USHORT: lookup(sm, ((DataBufferUShort) src).getData(), destsm, ((DataBufferUShort) dest).getData()); return; switch (dest.getDataType()) { case DataBuffer.TYPE_BYTE: lookup(sm, ((DataBufferShort) src).getData(), destsm, ((DataBufferByte) dest).getData()); return; case DataBuffer.TYPE_USHORT: lookup(sm, ((DataBufferShort) src).getData(), destsm, ((DataBufferUShort) dest).getData()); return;
public abstract void lookup(byte[] src, int srcPost, byte[] dest, int destPos, int length);
public abstract void lookup(byte[] src, int srcPost, byte[] dest, int destPos, int length);
lut.lookup(raster, destRaster); return destRaster;