@Override public int getBitsPerPixel() { return t.getBitsPerPixel(); }
@Override public int getBitsPerPixel() { return t.getBitsPerPixel(); }
protected int getBitsPerPixel( final T type ) { if ( type instanceof RealType ) { return ( ( RealType< ? > ) type ).getBitsPerPixel(); } throw new IllegalStateException( "Unknown bits per pixel: " + type ); }
protected int getBitsPerPixel( final T type ) { if ( type instanceof RealType ) { return ( ( RealType< ? > ) type ).getBitsPerPixel(); } throw new IllegalStateException( "Unknown bits per pixel: " + type ); }
private <T extends RealType<T>> boolean isNarrowType( final RandomAccessibleInterval<T> source) { return Util.getTypeFromInterval(source).getBitsPerPixel() <= 8; } }
@Override public int getValidBits() { final int validBits = imgPlus.getValidBits(); if (validBits > 0) return validBits; return getType().getBitsPerPixel(); }
@Override public double getBytesOfInfo() { final double bitsPerPix = getType().getBitsPerPixel(); final long[] dims = getDims(); long pixCount = 1; for (final long dimSize : dims) pixCount *= dimSize; final double totBits = bitsPerPix * pixCount; return totBits / 8; }
@Override public int getValidBits() { final int validBits = imgPlus.getValidBits(); if (validBits > 0) return validBits; return getType().getBitsPerPixel(); }
@Override public double getBytesOfInfo() { final double bitsPerPix = getType().getBitsPerPixel(); long pixCount = 1; for (int d = 0; d < numDimensions(); d++) { pixCount *= dimension(d); } final double totBits = bitsPerPix * pixCount; return totBits / 8; }
@Override public String getTypeLabelLong() { if (isRGBMerged()) return "RGB color"; final int bitsPerPixel = getType().getBitsPerPixel(); final String category = isInteger() ? isSigned() ? "signed" : "unsigned" : "float"; return category + " " + bitsPerPixel + "-bit"; }
@Override public String getTypeLabelShort() { if (isRGBMerged()) return "RGB"; final int bitsPerPixel = getType().getBitsPerPixel(); final String category = isInteger() ? isSigned() ? "int" : "uint" : "float"; return category + bitsPerPixel; }
/** * Determine the smallest type that will correctly store the sums. * For {@link Img} whose type has integer precision, the largest type is {@link LongType}. * For {@link Img} whose type has floating-point precision, the largest type is {@link DoubleType}. * * @param img The input {@link Img}. * @return */ static public final <R extends RealType<R>, T extends NativeType<T> & NumericType<T>> T computeSmallestType(final Img<R> img) { final R type = img.firstElement(); final long maxSum = (long) (img.size() * (Math.pow(2, type.getBitsPerPixel()) -1)); T smallest = chooseSmallestType(type, maxSum); if (null != smallest) return smallest; // Else, slow way: sum all values and determine the smallest type final RealSum sum = new RealSum(); for (final R r : img) sum.add(r.getRealDouble()); smallest = chooseSmallestType(type, sum.getSum()); if (null != smallest) return smallest; throw new UnsupportedOperationException("Target image is too large!"); }
private boolean mergedColorCompatible() { if (isSigned()) return false; if (!isInteger()) return false; if (getType().getBitsPerPixel() != 8) return false; if (imgPlus.getAxisIndex(Axes.CHANNEL) < 0) return false; if (imgPlus.dimension(getAxisIndex(Axes.CHANNEL)) != 3) return false; return true; } }
private boolean mergedColorCompatible() { if (isSigned()) return false; if (!isInteger()) return false; if (getType().getBitsPerPixel() != 8) return false; if (imgPlus.dimensionIndex(Axes.CHANNEL) < 0) return false; if (imgPlus.dimension(dimensionIndex(Axes.CHANNEL)) != 3) return false; return true; }
/** * tests that a given {@link Dataset} can be represented as a color * {@link ImagePlus}. Some of this test maybe overkill if by definition * rgbMerged can only be true if channels == 3 and type = ubyte are also true. */ static boolean isColorCompatible(final Dataset ds) { final int compositeChannels = ds.getImgPlus().getCompositeChannelCount(); if (ds.isRGBMerged()) { if (!ds.isInteger()) return false; if (ds.isSigned()) return false; if (ds.getType().getBitsPerPixel() != 8) return false; if (compositeChannels < 1 || compositeChannels > 3) return false; return true; } if (compositeChannels >= 2 && compositeChannels <= 7) return true; return false; }
final AxisType[] axes = def.getOutputAxes(); final double[] cal = def.getOutputCalibration(axes); final int bitsPerPixel = origDs.getType().getBitsPerPixel(); final boolean signed = origDs.isSigned(); final boolean floating = !origDs.isInteger();
final AxisType[] axes = def.getOutputAxes(); final CalibratedAxis[] calibAxes = def.getOutputCalibratedAxes(); final int bitsPerPixel = origDs.getType().getBitsPerPixel(); final boolean signed = origDs.isSigned(); final boolean floating = !origDs.isInteger();