/** * Converts a {@link InterleavedS16} into a {@link GrayS16} by computing the average value of each pixel * across all the bands. * * @param input (Input) The ImageInterleaved that is being converted. Not modified. * @param output (Optional) The single band output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 average( InterleavedS16 input , GrayS16 output ) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ConvertInterleavedToSingle.average(input, output); return output; }
/** * Converts a {@link Planar} into a {@link ImageGray} by computing the average value of each pixel * across all the bands. * * @param input Input Planar image that is being converted. Not modified. * @param output (Optional) The single band output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 average( Planar<GrayS16> input , GrayS16 output ) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertPlanarToGray.average(input, output); return output; }
/** * <p> * Converts an {@link boofcv.struct.image.GrayU8} into a {@link boofcv.struct.image.GrayS16}. * </p> * * @param input Input image which is being converted. Not modified. * @param output (Optional) The output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 convert(GrayU8 input, GrayS16 output) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertImage.convert(input, output); return output; }
/** * <p> * Converts an {@link boofcv.struct.image.GrayS64} into a {@link boofcv.struct.image.GrayS16}. * </p> * * @param input Input image which is being converted. Not modified. * @param output (Optional) The output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 convert(GrayS64 input, GrayS16 output) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertImage.convert(input, output); return output; }
/** * <p> * Converts an {@link boofcv.struct.image.GrayS8} into a {@link boofcv.struct.image.GrayS16}. * </p> * * @param input Input image which is being converted. Not modified. * @param output (Optional) The output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 convert(GrayS8 input, GrayS16 output) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertImage.convert(input, output); return output; }
/** * <p> * Converts an {@link boofcv.struct.image.GrayU16} into a {@link boofcv.struct.image.GrayS16}. * </p> * * @param input Input image which is being converted. Not modified. * @param output (Optional) The output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 convert(GrayU16 input, GrayS16 output) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertImage.convert(input, output); return output; }
/** * <p> * Converts an {@link boofcv.struct.image.GrayF64} into a {@link boofcv.struct.image.GrayS16}. * </p> * * @param input Input image which is being converted. Not modified. * @param output (Optional) The output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 convert(GrayF64 input, GrayS16 output) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertImage.convert(input, output); return output; }
/** * <p> * Converts an {@link boofcv.struct.image.GrayS32} into a {@link boofcv.struct.image.GrayS16}. * </p> * * @param input Input image which is being converted. Not modified. * @param output (Optional) The output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 convert(GrayS32 input, GrayS16 output) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertImage.convert(input, output); return output; }
/** * <p> * Converts an {@link boofcv.struct.image.GrayF32} into a {@link boofcv.struct.image.GrayS16}. * </p> * * @param input Input image which is being converted. Not modified. * @param output (Optional) The output image. If null a new image is created. Modified. * @return Converted image. */ public static GrayS16 convert(GrayF32 input, GrayS16 output) { if (output == null) { output = new GrayS16(input.width, input.height); } else { output.reshape(input.width,input.height); } ImplConvertImage.convert(input, output); return output; }
public static <T extends ImageGray<T>> T create(Class<T> type , int width , int height ) { if( type == GrayU8.class) { return (T)new GrayU8(width,height); } else if( type == GrayS8.class) { return (T)new GrayS8(width,height); } else if( type == GrayU16.class) { return (T)new GrayU16(width,height); } else if( type == GrayS16.class) { return (T)new GrayS16(width,height); } else if( type == GrayS32.class) { return (T)new GrayS32(width,height); } else if( type == GrayF32.class) { return (T)new GrayF32(width,height); } else{ throw new IllegalArgumentException("Unknown image type: "+type); } } }
public GrayF32 computeDisparity( Planar<GrayU8> rectColor1 , Planar<GrayU8> rectColor2 ) { GrayU8 rectifiedLeft = new GrayU8(rectColor1.width,rectColor1.height); GrayU8 rectifiedRight = new GrayU8(rectColor2.width,rectColor2.height); ConvertImage.average(rectColor1,rectifiedLeft); ConvertImage.average(rectColor2,rectifiedRight); // compute disparity StereoDisparity<GrayS16, GrayF32> disparityAlg = FactoryStereoDisparity.regionSubpixelWta(DisparityAlgorithms.RECT_FIVE, controls.minDisparity, controls.maxDisparity, 6, 6, 30, 3, 0.05, GrayS16.class); // Apply the Laplacian across the image to add extra resistance to changes in lighting or camera gain GrayS16 derivLeft = new GrayS16(rectColor1.width,rectColor1.height); GrayS16 derivRight = new GrayS16(rectColor2.width,rectColor2.height); LaplacianEdge.process(rectifiedLeft, derivLeft); LaplacianEdge.process(rectifiedRight,derivRight); // process and return the results disparityAlg.process(derivLeft, derivRight); return disparityAlg.getDisparity(); }
public static <T extends ImageGray<T>> T createSingleBand(Class<T> type, int width, int height) { type = BoofTesting.convertGenericToSpecificType(type); if (type == GrayU8.class) { return (T)new GrayU8(width, height); } else if (type == GrayS8.class) { return (T)new GrayS8(width, height); } else if (type == GrayS16.class) { return (T)new GrayS16(width, height); } else if (type == GrayU16.class) { return (T)new GrayU16(width, height); } else if (type == GrayS32.class) { return (T)new GrayS32(width, height); } else if (type == GrayS64.class) { return (T)new GrayS64(width, height); } else if (type == GrayF32.class) { return (T)new GrayF32(width, height); } else if (type == GrayF64.class) { return (T)new GrayF64(width, height); } else if( (Class)type == GrayI.class ) { // ImageInteger is a generic type, so just create something return (T)new GrayS32(width,height); } throw new RuntimeException("Unknown type: "+type.getSimpleName()); }