.TH "MPSImageGaussianBlur" 3 "Mon Jul 9 2018" "Version MetalPerformanceShaders-119.3" "MetalPerformanceShaders.framework" \" -*- nroff -*- .ad l .nh .SH NAME MPSImageGaussianBlur .SH SYNOPSIS .br .PP .PP \fC#import \fP .PP Inherits \fBMPSUnaryImageKernel\fP\&. .SS "Instance Methods" .in +1c .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:sigma:\fP" .br .ti -1c .RI "(nullable instancetype) \- \fBinitWithCoder:device:\fP" .br .ti -1c .RI "(nonnull instancetype) \- \fBinitWithDevice:\fP" .br .in -1c .SS "Properties" .in +1c .ti -1c .RI "float \fBsigma\fP" .br .in -1c .SS "Additional Inherited Members" .SH "Detailed Description" .PP The \fBMPSImageGaussianBlur\fP convolves an image with gaussian of given sigma in both x and y direction\&. .PP .nf The MPSImageGaussianBlur utilizes a very fast algorith that typically runs at approximately 1/2 of copy speeds. Notably, it is faster than either the tent or box blur except perhaps for very large filter windows. Mathematically, it is an approximate gaussian. Some non-gaussian behavior may be detectable with advanced analytical methods such as FFT. If a analytically clean gaussian filter is required, please use the MPSImageConvolution filter instead with an appropriate set of weights. The MPSImageGaussianBlur is intended to be suitable for all common image processing needs demanding ~10 bits of precision or less. .fi .PP .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(float) sigma" Initialize a gaussian blur filter for a particular sigma and device .PP \fBParameters:\fP .RS 4 \fIdevice\fP The device the filter will run on .br \fIsigma\fP The standard deviation of gaussian blur filter\&. Gaussian weight, centered at 0, at integer grid i is given as w(i) = 1/sqrt(2*pi*sigma) * exp(-i^2/(2*sigma^2)) If we take cut off at 1% of w(0) (max weight) beyond which weights are considered 0, we have ceil (sqrt(-log(0\&.01)*2)*sigma) ~ ceil(3\&.7*sigma) as rough estimate of filter width .RE .PP \fBReturns:\fP .RS 4 \fBA\fP valid object or nil, if failure\&. .RE .PP .SH "Property Documentation" .PP .SS "\- sigma\fC [read]\fP, \fC [nonatomic]\fP, \fC [assign]\fP" Read-only sigma value with which filter was created .SH "Author" .PP Generated automatically by Doxygen for MetalPerformanceShaders\&.framework from the source code\&.