ConnectedComponentLabeling.CCL.Process C# (CSharp) Method

Process() public method

public Process ( Bitmap input ) : Bitmap>.IDictionary
input System.Drawing.Bitmap
return Bitmap>.IDictionary
        public IDictionary<int, Bitmap> Process(Bitmap input)
        {
            _input = input;
            _width = input.Width;
            _height = input.Height;
            _board = new int[_width, _height];

            Dictionary<int, List<Pixel>> patterns = Find();
            var images = new Dictionary<int, Bitmap>();

            foreach (KeyValuePair<int, List<Pixel>> pattern in patterns)
            {
                Bitmap bmp = CreateBitmap(pattern.Value);
                images.Add(pattern.Key, bmp);
            }

            return images;
        }

Usage Example

        public void ProcessTest()
        {
            //Arrange
            IConnectedComponentLabeling target = new CCL();
            Bitmap input = new Bitmap(AppDomain.CurrentDomain.BaseDirectory + @"\Test.bmp");

            //Act
            var images = target.Process(input);

            foreach (var image in images)
            {
                image.Value.Save(savePath + image.Key + ".bmp");
            }

            //Assert
            Assert.AreEqual(2, images.Count);
        }