Example #1
0
        public override Bitmap processImage(Bitmap sourceImage, BackgroundWorker worker)
        {
            Bitmap resultImage = new Bitmap(sourceImage.Width, sourceImage.Height), tempImage;

            tempImage = dilation.processImage(sourceImage, worker);

            for (int i = 0; i < sourceImage.Width; i++)
            {
                worker.ReportProgress((int)((float)i / resultImage.Width * 50) + 50);
                if (worker.CancellationPending)
                {
                    return(null);
                }

                for (int j = 0; j < sourceImage.Height; j++)
                {
                    int r = Clamp(tempImage.GetPixel(i, j).R - sourceImage.GetPixel(i, j).R, 0, 255);
                    int g = Clamp(tempImage.GetPixel(i, j).G - sourceImage.GetPixel(i, j).G, 0, 255);
                    int b = Clamp(tempImage.GetPixel(i, j).B - sourceImage.GetPixel(i, j).B, 0, 255);

                    resultImage.SetPixel(i, j, Color.FromArgb(r, g, b));
                }
            }

            return(resultImage);
        }
Example #2
0
 public override Bitmap processImage(Bitmap sourceImage, BackgroundWorker worker)
 {
     return(dilation.processImage(erosion.processImage(sourceImage, worker), worker));
 }