Example #1
0
        protected void CollectPixels()
        {
            _maskedPixels.Clear();
            _inMaskPixels.Clear();
            var topX = CurrentPixel.X - MaskSize / 2;
            var topY = CurrentPixel.Y - MaskSize / 2;

            for (var iRow = CurrentPixel.Y - MaskSize / 2; iRow <= CurrentPixel.Y + MaskSize / 2; iRow += 1)
            {
                for (var iCol = CurrentPixel.X - MaskSize / 2; iCol <= CurrentPixel.X + MaskSize / 2; iCol += 1)
                {
                    try
                    {
                        var positionedPixel = new PositionedPixel(TraversingImage[iRow, iCol], iCol, iRow);
                        var inMaskPixel     = new InMaskPixel(TraversingImage[iRow, iCol], iCol - topX, iRow - topY);
                        _maskedPixels.Add(positionedPixel);
                        _inMaskPixels.Add(inMaskPixel);
                    }
                    catch
                    {
                        // surpressing bad pixel access
                    }
                }
            }
        }
Example #2
0
        protected override ImageIterator Add(int pixelsToJump)
        {
            var newX = (CurrentPixel.X + pixelsToJump) % TraversingImage.Width;
            var newY = CurrentPixel.Y + (CurrentPixel.X + pixelsToJump) / TraversingImage.Width;

            if (newY >= TraversingImage.Height)
            {
                return(null);
            }
            CurrentPixel = new PositionedPixel(TraversingImage[newY, newX], newX, newY);
            return(this);
        }
Example #3
0
 public SequentialProcessingStepEventArgs(Image image, PositionedPixel pixel)
 {
     ProcessingImage = image;
     CurrentPixel    = pixel;
 }
Example #4
0
 public ImageIterator(Image image)
 {
     TraversingImage = image;
     CurrentPixel    = new PositionedPixel(image[0, 0], 0, 0);
 }