public unsafe GaussFilterAssembly(int maskSize, double gaussRadius, Bitmap image, IGaussMaskProvider maskProvider, Action <float> dispatcher) { bitmapLastIndex = image.Width * image.Height * BYTES_IN_PIXEL; mask = maskProvider.GetMask(maskSize, gaussRadius); ProgressChanged += GaussFilterAssembly_ProgressChanged; this.maskSize = maskSize; this.gaussRadius = gaussRadius; this.image = image; filteredImage = image.Clone() as Bitmap; this.maskProvider = maskProvider; this.dispatcher = dispatcher; }
public GaussFilterCSharp(int maskSize, double gaussRadius, Bitmap image, IGaussMaskProvider maskProvider, Action <float> dispatcher) { _bitmapLastIndex = image.Width * image.Height * BYTES_IN_PIXEL; MaskSize = maskSize; GaussRadius = gaussRadius; Image = image; _dispatcher = dispatcher; Image = image; FilteredImage = image.Clone() as Bitmap; Mask = maskProvider.GetMask(maskSize, gaussRadius); maskValuesSum = Mask.Sum(m => m); ProgressChanged += GaussFilter_ProgressChanged; }