MPSImageDilate(3) MetalPerformanceShaders.framework MPSImageDilate(3)

MPSImageDilate

#import <MPSImageMorphology.h>

Inherits MPSUnaryImageKernel.

Inherited by MPSImageErode.


(nonnull instancetype) - initWithDevice:kernelWidth:kernelHeight:values:
(nonnull instancetype) - initWithDevice:
(nullable instancetype) - initWithCoder:device:


NSUInteger kernelHeight
NSUInteger kernelWidth

The MPSImageDilate finds the maximum pixel value in a rectangular region centered around each pixel in the source image. It is like the MPSImageAreaMax, except that the intensity at each position is calculated relative to a different value before determining which is the maximum pixel value, allowing for shaped, non-rectangular morphological probes.

for each pixel in the filter window:

value = pixel[filterY][filterX] - filter[filterY*filter_width+filterX]
if( value > bestValue ){
result = value
bestValue = value;
}


A filter that contains all zeros and is identical to a MPSImageAreaMax filter. The center filter element is assumed to be 0 to avoid causing a general darkening of the image.

The edgeMode property is assumed to always be MPSImageEdgeModeClamp for this filter.

- (nullable instancetype) initWithCoder: (NSCoder *__nonnull) aDecoder(nonnull id< MTLDevice >) device

NSSecureCoding compatability While the standard NSSecureCoding/NSCoding method -initWithCoder: should work, since the file can't know which device your data is allocated on, we have to guess and may guess incorrectly. To avoid that problem, use initWithCoder:device instead.

Parameters:

aDecoder The NSCoder subclass with your serialized MPSKernel
device The MTLDevice on which to make the MPSKernel

Returns:

A new MPSKernel object, or nil if failure.

Reimplemented from MPSUnaryImageKernel.

- (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device

Standard init with default properties per filter type

Parameters:

device The device that the filter will be used on. May not be NULL.

Returns:

a pointer to the newly initialized object. This will fail, returning nil if the device is not supported. Devices must be MTLFeatureSet_iOS_GPUFamily2_v1 or later.

Reimplemented from MPSUnaryImageKernel.

- (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device(NSUInteger) kernelWidth(NSUInteger) kernelHeight(const float *__nonnull) values

Init a object with kernel height, width and weight values. Each dilate shape probe defines a 3D surface of values. These are arranged in order left to right, then top to bottom in a 1D array. (values[kernelWidth*y+x] = probe[y][x]) Values should be generally be in the range [0,1] with the center pixel tending towards 0 and edges towards 1. However, any numerical value is allowed. Calculations are subject to the usual floating-point rounding error.

Parameters:

device The device the filter will run on
kernelWidth The width of the kernel. Must be an odd number.
kernelHeight The height of the kernel. Must be an odd number.
values The set of values to use as the dilate probe. The values are copied into the filter. To avoid image ligthening or darkening, the center value should be 0.0f.

- kernelHeight [read], [nonatomic], [assign]

The height of the filter window. Must be an odd number.

- kernelWidth [read], [nonatomic], [assign]

The width of the filter window. Must be an odd number.

Generated automatically by Doxygen for MetalPerformanceShaders.framework from the source code.

Mon Jul 9 2018 Version MetalPerformanceShaders-119.3