/// <summary> /// Constructor. /// </summary> /// <param name="squareSize">Size of the square to build the Haar-like Feature within.</param> /// <param name="numChannels">Number of channels to sample from</param> /// <param name="mixChannels">Whether to allow the mixing channels when computing the difference</param> public HaarFeatureFactory(int squareSize, int numChannels, bool mixChannels) { HaarFeatures.SetSquareSize(2 * squareSize + 1); _possibleFeatureCount = numChannels * HaarFeatures.FEATURES.Length; _numChannels = numChannels; _mixChannels = mixChannels; }
public Form1() { InitializeComponent(); //Созхдание каскада из набора примитивов #region CreateCascade int l = 6; // Размер минимального квадрата паттерна // Используемые признаки хаара // 0 - белый, * - чёрный for (int s = l; s < l*3+1; s += l) { //000 //*** HaarFeatures HF = new HaarFeatures(); HF.AddWhite(0, 0, s * 3, s); HF.AddBlack(0, s, s * 3, s); HF.SetSize(s * 3, s * 2); Cascade.Add(HF); //0* //0* //0* HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s*3); HF.AddBlack(s, 0, s, s*3); HF.SetSize(s * 2, s * 3); Cascade.Add(HF); //0 //* //0 HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s); HF.AddWhite(0, s*2, s, s); HF.AddBlack(0, s, s, s); HF.SetSize(s, s * 3); Cascade.Add(HF); //0*0 HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s); HF.AddWhite(s*2, 0, s, s); HF.AddBlack(s, 0, s, s); HF.SetSize(s*3, s); Cascade.Add(HF); //0* //*0 HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s); HF.AddWhite(s, s, s, s); HF.AddBlack(s, 0, s, s); HF.AddBlack(0, s, s, s); HF.SetSize(s * 2, s*2); //000 //0*0 //000 HF = new HaarFeatures(); HF.AddWhite(0, 0, s*3, s); HF.AddWhite(0, s*2, s * 3, s); HF.AddWhite(0, s, s, s); HF.AddWhite(s*2, s, s, s); HF.AddBlack(s, s, s, s); HF.SetSize(s * 3, s * 3); Cascade.Add(HF); } #endregion }
public Form1() { InitializeComponent(); //Созхдание каскада из набора примитивов #region CreateCascade int l = 6; // Размер минимального квадрата паттерна // Используемые признаки хаара // 0 - белый, * - чёрный for (int s = l; s < l * 3 + 1; s += l) { //000 //*** HaarFeatures HF = new HaarFeatures(); HF.AddWhite(0, 0, s * 3, s); HF.AddBlack(0, s, s * 3, s); HF.SetSize(s * 3, s * 2); Cascade.Add(HF); //0* //0* //0* HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s * 3); HF.AddBlack(s, 0, s, s * 3); HF.SetSize(s * 2, s * 3); Cascade.Add(HF); //0 //* //0 HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s); HF.AddWhite(0, s * 2, s, s); HF.AddBlack(0, s, s, s); HF.SetSize(s, s * 3); Cascade.Add(HF); //0*0 HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s); HF.AddWhite(s * 2, 0, s, s); HF.AddBlack(s, 0, s, s); HF.SetSize(s * 3, s); Cascade.Add(HF); //0* //*0 HF = new HaarFeatures(); HF.AddWhite(0, 0, s, s); HF.AddWhite(s, s, s, s); HF.AddBlack(s, 0, s, s); HF.AddBlack(0, s, s, s); HF.SetSize(s * 2, s * 2); //000 //0*0 //000 HF = new HaarFeatures(); HF.AddWhite(0, 0, s * 3, s); HF.AddWhite(0, s * 2, s * 3, s); HF.AddWhite(0, s, s, s); HF.AddWhite(s * 2, s, s, s); HF.AddBlack(s, s, s, s); HF.SetSize(s * 3, s * 3); Cascade.Add(HF); } #endregion }