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