JUCE  v5.1.1-3-g1a0b28c73
JUCE API
ImageConvolutionKernel Class Reference

Represents a filter kernel to use in convoluting an image. More...

#include <juce_ImageConvolutionKernel.h>

Collaboration diagram for ImageConvolutionKernel:

Public Member Functions

 ImageConvolutionKernel (int size)
 Creates an empty convulution kernel. More...
 
 ~ImageConvolutionKernel ()
 Destructor. More...
 
void applyToImage (Image &destImage, const Image &sourceImage, const Rectangle< int > &destinationArea) const
 Applies the kernel to an image. More...
 
void clear ()
 Resets all values in the kernel to zero. More...
 
void createGaussianBlur (float blurRadius)
 Intialises the kernel for a gaussian blur. More...
 
int getKernelSize () const
 Returns the size of the kernel. More...
 
float getKernelValue (int x, int y) const noexcept
 Returns one of the kernel values. More...
 
void rescaleAllValues (float multiplier)
 Multiplies all values in the kernel by a value. More...
 
void setKernelValue (int x, int y, float value) noexcept
 Sets the value of a specific cell in the kernel. More...
 
void setOverallSum (float desiredTotalSum)
 Rescales all values in the kernel to make the total add up to a fixed value. More...
 

Private Attributes

const int size
 
HeapBlock< float > values
 

Detailed Description

Represents a filter kernel to use in convoluting an image.

See also
Image::applyConvolution

Constructor & Destructor Documentation

◆ ImageConvolutionKernel()

ImageConvolutionKernel::ImageConvolutionKernel ( int  size)

Creates an empty convulution kernel.

Parameters
sizethe length of each dimension of the kernel, so e.g. if the size is 5, it will create a 5x5 kernel

◆ ~ImageConvolutionKernel()

ImageConvolutionKernel::~ImageConvolutionKernel ( )

Destructor.

Member Function Documentation

◆ applyToImage()

void ImageConvolutionKernel::applyToImage ( Image destImage,
const Image sourceImage,
const Rectangle< int > &  destinationArea 
) const

Applies the kernel to an image.

Parameters
destImagethe image that will receive the resultant convoluted pixels.
sourceImagethe source image to read from - this can be the same image as the destination, but if different, it must be exactly the same size and format.
destinationAreathe region of the image to apply the filter to

◆ clear()

void ImageConvolutionKernel::clear ( )

Resets all values in the kernel to zero.

◆ createGaussianBlur()

void ImageConvolutionKernel::createGaussianBlur ( float  blurRadius)

Intialises the kernel for a gaussian blur.

Parameters
blurRadiusthis may be larger or smaller than the kernel's actual size but this will obviously be wasteful or clip at the edges. Ideally the kernel should be just larger than (blurRadius * 2).

◆ getKernelSize()

int ImageConvolutionKernel::getKernelSize ( ) const
inline

Returns the size of the kernel.

E.g. if it's a 3x3 kernel, this returns 3.

◆ getKernelValue()

float ImageConvolutionKernel::getKernelValue ( int  x,
int  y 
) const
noexcept

Returns one of the kernel values.

◆ rescaleAllValues()

void ImageConvolutionKernel::rescaleAllValues ( float  multiplier)

Multiplies all values in the kernel by a value.

◆ setKernelValue()

void ImageConvolutionKernel::setKernelValue ( int  x,
int  y,
float  value 
)
noexcept

Sets the value of a specific cell in the kernel.

The x and y parameters must be in the range 0 < x < getKernelSize().

See also
setOverallSum

◆ setOverallSum()

void ImageConvolutionKernel::setOverallSum ( float  desiredTotalSum)

Rescales all values in the kernel to make the total add up to a fixed value.

This will multiply all values in the kernel by (desiredTotalSum / currentTotalSum).

Member Data Documentation

◆ size

const int ImageConvolutionKernel::size
private

◆ values

HeapBlock<float> ImageConvolutionKernel::values
private

The documentation for this class was generated from the following file: