.TH "MPSImageDilate" 3 "Mon Jul 9 2018" "Version MetalPerformanceShaders-119.3" "MetalPerformanceShaders.framework" \" -*- nroff -*- .ad l .nh .SH NAME MPSImageDilate .SH SYNOPSIS .br .PP .PP \fC#import \fP .PP Inherits \fBMPSUnaryImageKernel\fP\&. .PP Inherited by \fBMPSImageErode\fP\&. .SS "Instance Methods" .in +1c .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:kernelWidth:kernelHeight:values:\fP" .br .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:\fP" .br .ti -1c .RI "(nullable instancetype) \- \fBinitWithCoder:device:\fP" .br .in -1c .SS "Properties" .in +1c .ti -1c .RI "NSUInteger \fBkernelHeight\fP" .br .ti -1c .RI "NSUInteger \fBkernelWidth\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBMPSImageDilate\fP finds the maximum pixel value in a rectangular region centered around each pixel in the source image\&. It is like the \fBMPSImageAreaMax\fP, 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\&. .PP .nf for each pixel in the filter window: value = pixel[filterY][filterX] - filter[filterY*filter_width+filterX] if( value > bestValue ){ result = value bestValue = value; } .fi .PP \fBA\fP filter that contains all zeros and is identical to a \fBMPSImageAreaMax\fP filter\&. The center filter element is assumed to be 0 to avoid causing a general darkening of the image\&. .PP The edgeMode property is assumed to always be MPSImageEdgeModeClamp for this filter\&. .SH "Method Documentation" .PP .SS "\- (nullable instancetype) \fBinitWithCoder:\fP (NSCoder *__nonnull) aDecoder(nonnull id< MTLDevice >) device" \fBNSSecureCoding\fP 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\&. .PP \fBParameters:\fP .RS 4 \fIaDecoder\fP The NSCoder subclass with your serialized \fBMPSKernel\fP .br \fIdevice\fP The MTLDevice on which to make the \fBMPSKernel\fP .RE .PP \fBReturns:\fP .RS 4 \fBA\fP new \fBMPSKernel\fP object, or nil if failure\&. .RE .PP .PP Reimplemented from \fBMPSUnaryImageKernel\fP\&. .SS "\- (nonnull instancetype) initWithDevice: (nonnull id< MTLDevice >) device" Standard init with default properties per filter type .PP \fBParameters:\fP .RS 4 \fIdevice\fP The device that the filter will be used on\&. May not be NULL\&. .RE .PP \fBReturns:\fP .RS 4 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\&. .RE .PP .PP Reimplemented from \fBMPSUnaryImageKernel\fP\&. .SS "\- (nonnull instancetype) \fBinitWithDevice:\fP (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\&. .PP \fBParameters:\fP .RS 4 \fIdevice\fP The device the filter will run on .br \fIkernelWidth\fP The width of the kernel\&. Must be an odd number\&. .br \fIkernelHeight\fP The height of the kernel\&. Must be an odd number\&. .br \fIvalues\fP 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\&. .RE .PP .SH "Property Documentation" .PP .SS "\- kernelHeight\fC [read]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" The height of the filter window\&. Must be an odd number\&. .SS "\- kernelWidth\fC [read]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" The width of the filter window\&. Must be an odd number\&. .SH "Author" .PP Generated automatically by Doxygen for MetalPerformanceShaders\&.framework from the source code\&.