Example #1
0
        public static Image <Gray, Byte> HistSkinDetect(BGRTree skinTree, Image <Bgr, Byte> inputImg, double minThresh)
        {
            Image <Gray, Byte> resultImg = new Image <Gray, Byte>(inputImg.Size);

            int height = resultImg.Height;
            int width  = resultImg.Width;

            for (int i = 0; i < height; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    Bgr bgrPix = inputImg[i, j];

                    //int freqSkin = skinTree.GetFreq(bgrPix);

                    //if (freqSkin > 0)
                    //{
                    //    int freqNSkin = nSkinTree.GetFreq(bgrPix);
                    //    if (freqSkin >= freqNSkin)
                    //        resultImg.Data[i, j, 0] = 255;
                    //}

                    double probSkin = skinTree.GetProb(bgrPix);

                    if (probSkin >= minThresh)
                    {
                        resultImg.Data[i, j, 0] = 255;
                    }
                }
            }

            return(resultImg);
        }
Example #2
0
        public static Image <Gray, Byte> HistSkinDetect(BGRTree skinTree, Image <Bgr, Byte> inputImg, int minFreq)
        {
            Image <Gray, Byte> resultImg = new Image <Gray, Byte>(inputImg.Size);
            //   CvInvoke.CvtColor(inputImg, resultImg, Emgu.CV.CvEnum.ColorConversion.Bgr2Gray);

            int height = resultImg.Height;
            int width  = resultImg.Width;

            for (int i = 0; i < height; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    Bgr bgrPix = inputImg[i, j];

                    int freqSkin = skinTree.GetFreq(bgrPix);

                    if (freqSkin >= minFreq)
                    {
                        resultImg.Data[i, j, 0] = 255;
                    }
                }
            }

            return(resultImg);
        }
Example #3
0
        public void HistSkinDetectWithTrain(BGRTree skinTree, BGRTree nSkinTree, Image <Bgr, Byte> inputImg,
                                            ref Image <Gray, Byte> outImg, ref string[] logFile, bool enableLog = false)
        {
            outImg = new Image <Gray, Byte>(inputImg.Size);

            int height = outImg.Height;
            int width  = outImg.Width;

            for (int i = 0; i < height; i++)
            {
                for (int j = 0; j < width; j++)
                {
                    Bgr bgrPix = inputImg[i, j];


                    int probSkin = skinTree.GetFreq(bgrPix);

                    if (probSkin > 0.0)
                    {
                        int probNSkin = nSkinTree.GetFreq(bgrPix);
                        if (probSkin >= probNSkin)
                        {
                            outImg.Data[i, j, 0] = 255;
                        }
                    }
                }
            }
        }