public Classifier(SignImage image) { M = image.Bmp.Width; N = image.Bmp.Height; LogStr = new StringBuilder(); //Генерируем случайные значения элементов Wmn матрицы M х N LogStr.AppendLine("Сумма квад ратов матрицы весов Wmn: " + Math.Round(GenerateWB(), 3)); StartClassification(image, 1); Write2DArray("w.txt", W); WriteArray("b.txt", B); }
public Classifier(SignImage image, double[,] W, double[] B, double m) { M = image.Bmp.Width; N = image.Bmp.Height; this.W = W; this.B = B; LogStr = new StringBuilder(); //Генерируем случайные значения элементов Wmn матрицы M х N LogStr.AppendLine("Сумма квадратов матрицы весов Wmn: " + Math.Round(CheckW(), 3)); StartClassification(image, m); }
private void StartClassification(SignImage image, double m) { //Определяем координаты устойчивой точки FindStablePoint2(image.Brightness, m); LogStr.AppendLine("Количество итераций при поиске устойчивой точки: " + _stablePointList.Count); LogStr.AppendLine("Максимальное значение в векторе устойчивой точки: " + Math.Round(StablePoint.Max(), 3)); LogStr.AppendLine("Минимальное значение в векторе устойчивой точки: " + Math.Round(StablePoint.Min(), 3)); //Определяем коэффициент сжатия отображения K GenerateK(); LogStr.AppendLine("Коэффициент сжатия отображения K: " + Math.Round(K, 5)); CreateIntervals(); LogStr.AppendLine("Количество диапазонов эвклидовых расстояний: " + Split.Clasters.Count); }
private void buttonSP_Click(object sender, EventArgs e) { double m = m2[0]; if (radioButtonMaxDH.Checked == true) { m = m2[1]; } //Генерируем новые W и B или используем из файла classifier = rBNo.Checked == true ? new Classifier(collectionList[0]) : new Classifier(collectionList[0], Read2DArray("w.txt"), ReadArray("b.txt"), m); textBoxLog.Text += classifier.LogStr; im = new SignImage(); pictureStablePoint.Image = im.CreateImage(classifier.StablePoint); pictureBoxIntervals.BackColor = Color.White; pictureBoxIntervals.Visible = true; pictureBoxIntervals.Paint += this.pictureBoxIntervals_Paint; }