private void Update()
 {
     Thr = GetThreshold();
     DoBinarization(SrcBmp, DestBmp, Thr);
     DrawHistGram(HistBmp, Histogram);
     PicHist.Invalidate();
     if (CmbMethod.SelectedItem.ToString() == "Minimum" || CmbMethod.SelectedItem.ToString() == "Intermodes")
     {
         DrawHistGram(SmoothHistBmp, HistGramS);
         PicSmoothHist.Invalidate();
     }
 }
Exemple #2
0
 private void Update()
 {
     Thr = GetThreshold();
     DoBinaryzation(SrcBmp, DestBmp, Thr);
     DrawHistGram(HistBmp, HistGram);
     PicHist.Invalidate();
     if (CmbMethod.SelectedItem.ToString() == "谷底最小值" || CmbMethod.SelectedItem.ToString() == "双峰平均值")
     {
         DrawHistGram(SmoothHistBmp, HistGramS);
         PicSmoothHist.Invalidate();
     }
 }
        private void Update()
        {
            Thr = GetThreshold();

            /*
             * Console.WriteLine("Thr" + Thr);
             * if (Thr == -1)
             * {
             *  Console.WriteLine("n_mutlpyY=" + n_mutlpyY + "mutlpyY[0]=" + mutlpyY[0]);
             *  Thr = mutlpyY[0];
             * }
             */
            if (Thr != -1)
            {
                //正常150个Iter以内
                DoBinaryzationLessThr(SrcBmp, DestBmp, Thr);
                DrawHistGram(HistBmp, HistGram);
                PicHist.Invalidate();
                if (CmbMethod.SelectedItem.ToString() == "谷底最小值" || CmbMethod.SelectedItem.ToString() == "双峰平均值")
                {
                    DrawHistGram(SmoothHistBmp, HistGramS);
                    PicSmoothHist.Invalidate();
                }
            }
            else
            {
                if (n_mutlpyY != 0)
                {
                    for (int j = 0; j < n_mutlpyY; j++)
                    {
                        Console.WriteLine("mutlpyY=" + mutlpyY[j]);
                    }
                    //有多个谷底的情况
                    Thr = mutlpyY[0];
                    DoBinaryzation(SrcBmp, DestBmp, Thr);
                    DrawHistGram(HistBmp, HistGram);
                    PicHist.Invalidate();
                    if (CmbMethod.SelectedItem.ToString() == "谷底最小值" || CmbMethod.SelectedItem.ToString() == "双峰平均值")
                    {
                        DrawHistGram(SmoothHistBmp, HistGramS);
                        PicSmoothHist.Invalidate();
                    }
                }
                else
                {
                }
            }
            n_mutlpyY = 0;
        }
 private void Update(int fileNum)
 {
     Thr = GetThreshold();
     if (Thr != -1)
     {
         //正常150个Iter以内
         DoBinaryzationLessThr(SrcBmp, DestBmp, Thr);
         String binImageName = String.Format("H:\\BMVC_DeROT\\HistgramBinaryzation\\test\\CNN_data_test\\pieces_{0:0000000}_0.png", fileNum);
         DestPic.Image.Save(binImageName);
         DoBinaryzationLargeThr(SrcBmp, DestBmp, Thr);
         binImageName = String.Format("H:\\BMVC_DeROT\\HistgramBinaryzation\\test\\CNN_data_test\\pieces_{0:0000000}_1.png", fileNum);
         DestPic.Image.Save(binImageName);
         DrawHistGram(HistBmp, HistGram);
         PicHist.Invalidate();
         if (CmbMethod.SelectedItem.ToString() == "谷底最小值" || CmbMethod.SelectedItem.ToString() == "双峰平均值")
         {
             DrawHistGram(SmoothHistBmp, HistGramS);
             PicSmoothHist.Invalidate();
         }
     }
     else
     {
         if (n_mutlpyY != 0)
         {
             //有多个谷底的情况
             String binImageName;
             for (int j = 0; j <= n_mutlpyY; j++)
             {
                 if (j == 0)
                 {
                     //第一段
                     Thr = mutlpyY[j];
                     DoBinaryzationLessThr(SrcBmp, DestBmp, Thr);
                 }
                 else if (j <= (n_mutlpyY - 1))
                 {
                     //Console.WriteLine("mutlpyY=" + mutlpyY[j]);
                     int left  = mutlpyY[j - 1];
                     int right = mutlpyY[j];
                     DoBinaryzationBetweenTwoThrs(SrcBmp, DestBmp, left, right);
                 }
                 else if (j >= n_mutlpyY)
                 {
                     //最后一段
                     Thr = mutlpyY[(n_mutlpyY - 1)];
                     DoBinaryzationLargeThr(SrcBmp, DestBmp, Thr);
                 }
                 binImageName = String.Format("H:\\BMVC_DeROT\\HistgramBinaryzation\\test\\CNN_data_test\\pieces_{0:0000000}_" + j + ".png", fileNum);
                 Console.WriteLine("binImageName=" + binImageName);
                 DestPic.Image.Save(binImageName);
             }
             DrawHistGram(HistBmp, HistGram);
             PicHist.Invalidate();
             if (CmbMethod.SelectedItem.ToString() == "谷底最小值" || CmbMethod.SelectedItem.ToString() == "双峰平均值")
             {
                 DrawHistGram(SmoothHistBmp, HistGramS);
                 PicSmoothHist.Invalidate();
             }
         }
         else
         {
         }
     }
     n_mutlpyY = 0;
 }