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