public static ImageDataType convertToGenericType(ImageDataType type) {
    if (type.isInteger()) {
      if (type.getNumBits() == 8) return ImageDataType.I8;
      else if (type.getNumBits() == 16) return ImageDataType.I16;
    }

    return type;
  }
  public static <T extends ImageBase> CreateSyntheticOverheadView<T> createOverhead(
      ImageDataType<T> imageType) {

    Class classType = imageType.getDataType().getImageClass();

    switch (imageType.getFamily()) {
      case SINGLE_BAND:
        {
          InterpolatePixel interp = FactoryInterpolation.bilinearPixel(classType);
          return new CreateSyntheticOverheadViewS(interp);
        }

      case MULTI_SPECTRAL:
        return new CreateSyntheticOverheadViewMS(
            TypeInterpolate.BILINEAR, imageType.getNumBands(), classType);

      default:
        throw new IllegalArgumentException(imageType.getFamily() + " is not supported");
    }
  }
 public FourierVisualizeApp(Class<T> imageType) {
   this(ImageDataType.classToType(imageType));
 }
 public WrapDescribePixelRegionNCC(DescribePointPixelRegionNCC<T> alg, Class<T> imageType) {
   this.alg = alg;
   this.imageType = ImageDataType.single(imageType);
 }