Class IntegralImageOps

java.lang.Object
boofcv.alg.transform.ii.IntegralImageOps

public class IntegralImageOps
extends Object

Common operations for dealing with integral images.

  • Constructor Details

    • IntegralImageOps

      public IntegralImageOps()
  • Method Details

    • transform

      public static GrayF32 transform​(GrayF32 input, @Nullable @Nullable GrayF32 transformed)
      Converts a regular image into an integral image.
      Parameters:
      input - Regular image. Not modified.
      transformed - Integral image. If null a new image will be created. Modified.
      Returns:
      Integral image.
    • transform

      public static GrayF64 transform​(GrayF64 input, @Nullable @Nullable GrayF64 transformed)
      Converts a regular image into an integral image.
      Parameters:
      input - Regular image. Not modified.
      transformed - Integral image. If null a new image will be created. Modified.
      Returns:
      Integral image.
    • transform

      public static GrayS32 transform​(GrayU8 input, @Nullable @Nullable GrayS32 transformed)
      Converts a regular image into an integral image.
      Parameters:
      input - Regular image. Not modified.
      transformed - Integral image. If null a new image will be created. Modified.
      Returns:
      Integral image.
    • transform

      public static GrayS32 transform​(GrayS32 input, @Nullable @Nullable GrayS32 transformed)
      Converts a regular image into an integral image.
      Parameters:
      input - Regular image. Not modified.
      transformed - Integral image. If null a new image will be created. Modified.
      Returns:
      Integral image.
    • transform

      public static GrayS64 transform​(GrayS64 input, @Nullable @Nullable GrayS64 transformed)
      Converts a regular image into an integral image.
      Parameters:
      input - Regular image. Not modified.
      transformed - Integral image. If null a new image will be created. Modified.
      Returns:
      Integral image.
    • convolve

      public static GrayF32 convolve​(GrayF32 integral, IntegralKernel kernel, @Nullable @Nullable GrayF32 output)
      General code for convolving a box filter across an image using the integral image.
      Parameters:
      integral - Integral image.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be declared and returned. Modified.
      Returns:
      Convolved image.
    • convolve

      public static GrayF64 convolve​(GrayF64 integral, IntegralKernel kernel, @Nullable @Nullable GrayF64 output)
      General code for convolving a box filter across an image using the integral image.
      Parameters:
      integral - Integral image.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be declared and returned. Modified.
      Returns:
      Convolved image.
    • convolve

      public static GrayS32 convolve​(GrayS32 integral, IntegralKernel kernel, @Nullable @Nullable GrayS32 output)
      General code for convolving a box filter across an image using the integral image.
      Parameters:
      integral - Integral image.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be declared and returned. Modified.
      Returns:
      Convolved image.
    • convolve

      public static GrayS64 convolve​(GrayS64 integral, IntegralKernel kernel, @Nullable @Nullable GrayS64 output)
      General code for convolving a box filter across an image using the integral image.
      Parameters:
      integral - Integral image.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be declared and returned. Modified.
      Returns:
      Convolved image.
    • convolveBorder

      public static GrayF32 convolveBorder​(GrayF32 integral, IntegralKernel kernel, @Nullable @Nullable GrayF32 output, int borderX, int borderY)
      Convolves the kernel only across the image's border.
      Parameters:
      integral - Integral image. Not modified.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be created. Modified.
      borderX - Size of the image border along the horizontal axis.
      borderY - size of the image border along the vertical axis.
    • convolveBorder

      public static GrayF64 convolveBorder​(GrayF64 integral, IntegralKernel kernel, @Nullable @Nullable GrayF64 output, int borderX, int borderY)
      Convolves the kernel only across the image's border.
      Parameters:
      integral - Integral image. Not modified.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be created. Modified.
      borderX - Size of the image border along the horizontal axis.
      borderY - size of the image border along the vertical axis.
    • convolveBorder

      public static GrayS32 convolveBorder​(GrayS32 integral, IntegralKernel kernel, @Nullable @Nullable GrayS32 output, int borderX, int borderY)
      Convolves the kernel only across the image's border.
      Parameters:
      integral - Integral image. Not modified.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be created. Modified.
      borderX - Size of the image border along the horizontal axis.
      borderY - size of the image border along the vertical axis.
    • convolveBorder

      public static GrayS64 convolveBorder​(GrayS64 integral, IntegralKernel kernel, @Nullable @Nullable GrayS64 output, int borderX, int borderY)
      Convolves the kernel only across the image's border.
      Parameters:
      integral - Integral image. Not modified.
      kernel - Convolution kernel.
      output - The convolved image. If null a new image will be created. Modified.
      borderX - Size of the image border along the horizontal axis.
      borderY - size of the image border along the vertical axis.
    • convolveSparse

      public static float convolveSparse​(GrayF32 integral, IntegralKernel kernel, int x, int y)
      Convolves a kernel around a single point in the integral image.
      Parameters:
      integral - Input integral image. Not modified.
      kernel - Convolution kernel.
      x - Pixel the convolution is performed at.
      y - Pixel the convolution is performed at.
      Returns:
      Value of the convolution
    • convolveSparse

      public static double convolveSparse​(GrayF64 integral, IntegralKernel kernel, int x, int y)
      Convolves a kernel around a single point in the integral image.
      Parameters:
      integral - Input integral image. Not modified.
      kernel - Convolution kernel.
      x - Pixel the convolution is performed at.
      y - Pixel the convolution is performed at.
      Returns:
      Value of the convolution
    • convolveSparse

      public static int convolveSparse​(GrayS32 integral, IntegralKernel kernel, int x, int y)
      Convolves a kernel around a single point in the integral image.
      Parameters:
      integral - Input integral image. Not modified.
      kernel - Convolution kernel.
      x - Pixel the convolution is performed at.
      y - Pixel the convolution is performed at.
      Returns:
      Value of the convolution
    • convolveSparse

      public static long convolveSparse​(GrayS64 integral, IntegralKernel kernel, int x, int y)
      Convolves a kernel around a single point in the integral image.
      Parameters:
      integral - Input integral image. Not modified.
      kernel - Convolution kernel.
      x - Pixel the convolution is performed at.
      y - Pixel the convolution is performed at.
      Returns:
      Value of the convolution
    • block_unsafe

      public static double block_unsafe​(GrayF64 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image without bounds checking. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • block_unsafe

      public static float block_unsafe​(GrayF32 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image without bounds checking. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • block_unsafe

      public static int block_unsafe​(GrayS32 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image without bounds checking. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • block_unsafe

      public static long block_unsafe​(GrayS64 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image without bounds checking. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • block_zero

      public static float block_zero​(GrayF32 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image and treats pixels outside of the image as zero. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • block_zero

      public static double block_zero​(GrayF64 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image and treats pixels outside of the image as zero. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • block_zero

      public static int block_zero​(GrayS32 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image and treats pixels outside of the image as zero. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • block_zero

      public static long block_zero​(GrayS64 integral, int x0, int y0, int x1, int y1)

      Computes the value of a block inside an integral image and treats pixels outside of the image as zero. The block is defined as follows: x0 < x ≤ x1 and y0 < y ≤ y1.

      Parameters:
      integral - Integral image.
      x0 - Lower bound of the block. Exclusive.
      y0 - Lower bound of the block. Exclusive.
      x1 - Upper bound of the block. Inclusive.
      y1 - Upper bound of the block. Inclusive.
      Returns:
      Value inside the block.
    • print

      public static void print​(IntegralKernel kernel)
      Prints out the kernel.
      Parameters:
      kernel - THe kernel which is to be printed.
    • isInBounds

      public static boolean isInBounds​(int x, int y, IntegralKernel kernel, int width, int height)
      Checks to see if the kernel is applied at this specific spot if all the pixels would be inside the image bounds or not
      Parameters:
      x - location where the kernel is applied. x-axis
      y - location where the kernel is applied. y-axis
      kernel - The kernel
      width - Image's width
      height - Image's height
      Returns:
      true if in bounds and false if out of bounds