/// <summary> /// メディアン画像MedianImageを更新する /// </summary> void UpdateMedianImage() { bool isInt; int ksize; isInt = int.TryParse(textBox_Median.Text, out ksize); if (isInt && trackBar_Median.Minimum <= ksize && ksize <= trackBar_Median.Maximum) { // もしカーネルサイズが3より小さければメディアンを行わない if (ksize < 3) { ksize = 0; textBox_Median.Text = ksize.ToString(); for (int i = 0; i < MedianImages.Length; i++) { MedianImages[i] = new Bitmap(BinImages[i]); } } // もしカーネルサイズが偶数なら奇数に揃える else if (ksize % 2 == 0) { ksize += 1; textBox_Median.Text = ksize.ToString(); MedianImages = SubImageOps.Median(BinImages, ksize); } // カーネルサイズが3以上かつ奇数ならそのまま実行 else { MedianImages = SubImageOps.Median(BinImages, ksize); } } else { ksize = 3; textBox_Median.Text = ksize.ToString(); MedianImages = SubImageOps.Median(BinImages, ksize); } trackBar_Median.Value = int.Parse(textBox_Median.Text); }