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();
}