コード例 #1
0
ファイル: Form1.cs プロジェクト: MichaelEk/StereoVision
        private void button1_Click(object sender, EventArgs e)
        {
            Idx = (Idx + 1) % 9;

            Left    = new Image <Rgb, byte>((Idx + 1) + "right.png").Resize(320, 240, INTER.CV_INTER_NN);
            Right   = new Image <Rgb, byte>((Idx + 1) + "left.png").Resize(320, 240, INTER.CV_INTER_NN);
            Network = new MarkovNetwork(Left, Right);

            while (Network.Step > 1)
            {
                LogProbability maxProb            = LogProbability.Zero;
                int            afterMaxStepsCount = 0;

                while (afterMaxStepsCount < 5)
                {
                    afterMaxStepsCount++;
                    Network.HiggsStep();
                    UpdateImage();
                    var prob = Network.GetPotential();
                    if (prob > maxProb)
                    {
                        maxProb            = prob;
                        afterMaxStepsCount = 0;
                    }
                }

                Network.ReduceStep();
            }

            for (int i = 0; i < 100; i++)
            {
                Network.HiggsStep();
                UpdateImage();
            }
        }
コード例 #2
0
ファイル: ViterbiPrint.cs プロジェクト: gitzfibbon/compbio
        public string PrintLogProbability()
        {
            StringBuilder sb        = new StringBuilder();
            int           iteration = 1;

            sb.Append("Log Probability for iteration " + iteration.ToString().PadLeft(2) + ": ");
            sb.Append(LogProbability.ToString("F10"));
            sb.AppendLine();

            return(sb.ToString());
        }
コード例 #3
0
        public LogProbability GetPotential()
        {
            LogProbability prob = LogProbability.One;

            for (int y = 0; y < RightMap.GetLength(0); y += Step)
            {
                for (int x = 0; x < RightMap.GetLength(1); x += Step)
                {
                    prob *= Net[y, x].GetRightDownProb();
                }
            }
            return(prob);
        }