static inputValues ReadInput(string path =  @"material/influence.txt")
        {
            inputValues iVal = new inputValues();
            StreamReader sr = new StreamReader(path);
            while (!sr.EndOfStream)
            {
                string line = sr.ReadLine();
                string[] splitted = line.Split('=');
                splitted[0] = splitted[0].Trim();
                splitted[1] = splitted[1].Trim();
                switch (splitted[0])
                {
                    case "input":
                        iVal.videoIn = splitted[1];
                        break;
                    case "output":
                        iVal.videoOut = splitted[1];
                        break;
                    case "state":
                        Matrix<float> stateMat = new Matrix<float>(3, 3);
                        string[] split = splitted[1].Split(' ');
                        stateMat[0, 0] = (float)Convert.ToDouble(split[0]);
                        stateMat[0, 1] = (float)Convert.ToDouble(split[1]);
                        stateMat[0, 2] = (float)Convert.ToDouble(split[2]);
                        stateMat[1, 0] = (float)Convert.ToDouble(split[3]);
                        stateMat[1, 1] = (float)Convert.ToDouble(split[4]);
                        stateMat[1, 2] = (float)Convert.ToDouble(split[5]);
                        stateMat[2, 0] = (float)Convert.ToDouble(split[6]);
                        stateMat[2, 1] = (float)Convert.ToDouble(split[7]);
                        stateMat[2, 2] = (float)Convert.ToDouble(split[8]);
                        iVal.stateMat = stateMat;
                        break;
                    case "conditional":
                        Matrix<float> condMat = new Matrix<float>(3, 2);
                        string[] split1 = splitted[1].Split(' ');
                        condMat[0, 0] = (float)Convert.ToDouble(split1[0]);
                        condMat[0, 1] = (float)Convert.ToDouble(split1[1]);
                        condMat[1, 0] = (float)Convert.ToDouble(split1[2]);
                        condMat[1, 1] = (float)Convert.ToDouble(split1[3]);
                        condMat[2, 0] = (float)Convert.ToDouble(split1[4]);
                        condMat[2, 1] = (float)Convert.ToDouble(split1[5]);
                        iVal.condMat = condMat;
                        break;
                    case "hmmlength":
                        iVal.hmmLength = Convert.ToInt32(splitted[1]);
                        break;
                    case "wlength":
                        iVal.windowLength = Convert.ToInt32(splitted[1]);
                        break;
                    case "nparticles":
                        iVal.nParticles = Convert.ToInt32(splitted[1]);
                        break;
                    case "blockdim":
                        iVal.blockDim = Convert.ToInt32(splitted[1]);
                        break;
                    case "sigma":
                        iVal.SIGMA = Convert.ToDouble(splitted[1]);
                        break;
                }
            }

            return iVal;
        }
 private static void PrintParams(inputValues iVal)
 {
     Console.WriteLine("Running Parameters for file:{0}", iVal.videoIn);
     Console.WriteLine("Output file:{0}", iVal.videoOut);
     Console.WriteLine("State Matrix:\n{0}\t{1}\t{2}\n{3}\t{4}\t{5}\n{6}\t{7}\t{8}", iVal.stateMat[0, 0], iVal.stateMat[0, 1], iVal.stateMat[0, 2],
                                                                                     iVal.stateMat[1, 0], iVal.stateMat[1, 1], iVal.stateMat[1, 2],
                                                                                     iVal.stateMat[2, 0], iVal.stateMat[2, 1], iVal.stateMat[2, 2]);
     Console.WriteLine("Conditional Probabilities Matrix:\n{0}\t{1}\n{2}\t{3}\n{4}\t{5}", iVal.condMat[0, 0], iVal.condMat[0, 1],
                                                                                         iVal.condMat[1, 0], iVal.condMat[1, 1],
                                                                                         iVal.condMat[2, 0], iVal.condMat[2, 1]);
     Console.WriteLine("HMM temporal Window: {0}", iVal.hmmLength);
     Console.WriteLine("Particle influence temporal Window: {0}", iVal.windowLength);
     Console.WriteLine("Particle per block: {0}", iVal.nParticles);
     Console.WriteLine("Block size: {0}", iVal.blockDim);
     Console.WriteLine("Sigma: {0}", iVal.SIGMA);
 }