Algorithmix.Preprocessing.Preprocessing.ExtractSingleImage C# (CSharp) Метод

ExtractSingleImage() приватный статический Метод

Extracts a single object given the corresponding mask and rectangle
private static ExtractSingleImage ( Bitmap TheBlob, Bitmap Source ) : Bitmap
TheBlob System.Drawing.Bitmap blob taken from mask
Source System.Drawing.Bitmap source rectangle from source
Результат System.Drawing.Bitmap
        private static Bitmap ExtractSingleImage(Bitmap TheBlob, Bitmap Source)
        {
            int width = TheBlob.Width;
            int height = TheBlob.Height;
            Bgr Background = new Bgr(Color.Black);
            Bgra FullAlpha = new Bgra(1, 13, 37, 0); //clear
            Emgu.CV.Image<Bgra, Byte> Extracted = new Image<Bgra, byte>(width, height);
            Emgu.CV.Image<Bgr, Byte> blob = new Image<Bgr, byte>(TheBlob);
            Emgu.CV.Image<Bgr, Byte> src = new Image<Bgr, byte>(Source);

            log.Debug("Extract Single Image out of original using Blob Mask");
            for (int ii = 0; ii < width; ii++)
            {
                for (int jj = 0; jj < height; jj++)
                {
                    if (Utility.IsEqual(Background, blob[jj, ii]))
                    {
                        //set extracted to full alpha
                        Extracted[jj, ii] = FullAlpha;
                    }
                    else
                    {
                        Extracted[jj, ii] = new Bgra(src[jj, ii].Blue, src[jj, ii].Green, src[jj, ii].Red, 255);
                    }
                }
            }
            log.Info("Return processed blob");
            return Extracted.ToBitmap();
        }