private void buttonTrain_Click(object sender, EventArgs e) { var startFontSize = Convert.ToInt32(comboBoxSubtitleFontSize.Items[comboBoxSubtitleFontSize.SelectedIndex].ToString()); var endFontSize = Convert.ToInt32(comboBoxFontSizeEnd.Items[comboBoxFontSizeEnd.SelectedIndex].ToString()); if (!File.Exists(textBoxInputFile.Text)) { MessageBox.Show($"Input file '{textBoxInputFile.Text}' does not exist!"); return; } if (!Directory.Exists(textBoxNOcrDb.Text)) { MessageBox.Show($"Output folder '{textBoxNOcrDb.Text}' does not exist!"); return; } if (listViewFonts.CheckedItems.Count == 1) { MessageBox.Show("Please select at least one font!"); return; } foreach (ListViewItem fontItem in listViewFonts.CheckedItems) { _subtitleFontName = fontItem.Text; for (_subtitleFontSize = startFontSize; _subtitleFontSize <= endFontSize; _subtitleFontSize++) { int numberOfCharactersLeaned = 0; int numberOfCharactersSkipped = 0; var bicDb = new BinaryOcrDb(Path.Combine(textBoxNOcrDb.Text, $"{_subtitleFontName}_{_subtitleFontSize}.db")); var lines = File.ReadAllLines(textBoxInputFile.Text).ToList(); var format = new SubRip(); var sub = new Subtitle(); format.LoadSubtitle(sub, lines, textBoxInputFile.Text); var charactersLearned = new List <string>(); foreach (var p in sub.Paragraphs) { foreach (char ch in p.Text) { if (!char.IsWhiteSpace(ch)) { var s = ch.ToString(); if (!charactersLearned.Contains(s)) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, bicDb, charactersLearned, s, false, false); TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, bicDb, charactersLearned, s, false, true); if (checkBoxBold.Checked) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, bicDb, charactersLearned, s, true, false); } } } } } bicDb.Save(); } } }
public void SrtDifficultLines1() { var target = new SubRip(); var subtitle = new Subtitle(); const string text = @"303 00:16:22,417 --> 00:16:24,417 sky bots? 304 00:16:24,417 --> 00:16:27,042 how do you think i did all the stuff for the show? 305 00:16:27,042 --> 00:16:29,417 you think i went myself?"; target.LoadSubtitle(subtitle, GetSrtLines(text), null); Assert.AreEqual(3, subtitle.Paragraphs.Count); const string expected = @"how do you think i did all the stuff for the show?"; Assert.AreEqual(expected, subtitle.Paragraphs[1].Text); }
private void buttonTrain_Click(object sender, EventArgs e) { if (!System.IO.File.Exists(textBoxInputFile.Text)) { return; } int numberOfCharactersLeaned = 0; int numberOfCharactersSkipped = 0; var nOcrD = new NOcrDb(textBoxNOcrDb.Text); var lines = new List <string>(); foreach (string line in System.IO.File.ReadAllLines(textBoxInputFile.Text)) { lines.Add(line); } var format = new SubRip(); var sub = new Subtitle(); format.LoadSubtitle(sub, lines, textBoxInputFile.Text); var charactersLearned = new List <string>(); foreach (ListViewItem item in listViewFonts.Items) { if (item.Checked) { _subtitleFontName = item.Text; _subtitleFontSize = Convert.ToInt32(comboBoxSubtitleFontSize.Items[comboBoxSubtitleFontSize.SelectedIndex].ToString()); charactersLearned = new List <string>(); foreach (Paragraph p in sub.Paragraphs) { foreach (char ch in p.Text) { string s = ch.ToString(); if (s.Trim().Length > 0) { if (!charactersLearned.Contains(s)) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, nOcrD, charactersLearned, s, false); if (checkBoxBold.Checked) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, nOcrD, charactersLearned, s, true); } } } } } } } nOcrD.Save(); }
public void SrtNoLineNumbers() { var target = new SubRip(); var subtitle = new Subtitle(); const string text = @"00:00:03,000 --> 00:00:08,000 Line1. 00:00:08,000 --> 00:00:09,920 Line 2."; target.LoadSubtitle(subtitle, GetSrtLines(text), null); Assert.AreEqual(2, subtitle.Paragraphs.Count); }
public void SrtDotsInsteadOfCommas() { var target = new SubRip(); var subtitle = new Subtitle(); const string text = @"2 00:00:04.501 --> 00:00:08.500 Dots instead of commas"; target.LoadSubtitle(subtitle, GetSrtLines(text), null); string actual = subtitle.Paragraphs[0].Text; const string expected = "Dots instead of commas"; Assert.AreEqual(expected, actual); }
public void SrtCoordinates() { var target = new SubRip(); var subtitle = new Subtitle(); const string text = @"1 00:00:02,001 --> 00:00:16,001 X1:000 X2:000 Y1:050 Y2:100 Let us have some! Let us have some!"; target.LoadSubtitle(subtitle, GetSrtLines(text), null); string actual = subtitle.Paragraphs[0].Text; const string expected = "Let us have some! Let us have some!"; Assert.AreEqual(expected, actual); }
public void SrtKeepBlankLines() { var target = new SubRip(); var subtitle = new Subtitle(); string subText = "Now go on!" + Environment.NewLine + Environment.NewLine + "Now go on!"; subtitle.Paragraphs.Add(new Paragraph(subText, 0, 999)); var text = target.ToText(subtitle, "title"); var outSubtitle = new Subtitle(); target.LoadSubtitle(outSubtitle, text.SplitToLines(), null); Assert.IsTrue(outSubtitle.Paragraphs[0].Text == subText); }
public void SrtTwoLiner() { var target = new SubRip(); var subtitle = new Subtitle(); const string text = @"2 00:00:04.501 --> 00:00:08.500 Line 1 Line 2"; target.LoadSubtitle(subtitle, GetSrtLines(text), null); string actual = subtitle.Paragraphs[0].Text; string expected = "Line 1" + Environment.NewLine + "Line 2"; Assert.AreEqual(expected, actual); }
public void SrtNoLineNumbers() { var target = new SubRip(); var subtitle = new Subtitle(); const string text = @"00:00:03,000 --> 00:00:08,000 Line1. 00:00:08,000 --> 00:00:09,920 Line 2."; target.LoadSubtitle(subtitle, GetSrtLines(text), null); string actual = subtitle.Paragraphs.Count.ToString(CultureInfo.InvariantCulture); const string expected = "2"; Assert.AreEqual(expected, actual); }
public void SrtDifficultLines2() { var target = new SubRip(); var subtitle = new Subtitle(); const string text = @"1 01:38:18,534 --> 01:38:20,067 6530 2 01:39:17,534 --> 01:39:19,400 ppp "; target.LoadSubtitle(subtitle, GetSrtLines(text), null); Assert.AreEqual(2, subtitle.Paragraphs.Count); const string expected = @" 6530"; Assert.AreEqual(expected.Trim(), subtitle.Paragraphs[0].Text.Trim()); }
private void buttonTrain_Click(object sender, EventArgs e) { if (buttonTrain.Text == "Abort") { _abort = true; return; } if (!File.Exists(textBoxInputFile.Text)) { return; } _abort = false; buttonTrain.Text = "Abort"; buttonOK.Enabled = false; int numberOfCharactersLeaned = 0; int numberOfCharactersSkipped = 0; var nOcrD = new NOcrDb(null); var lines = new List <string>(); foreach (string line in File.ReadAllLines(textBoxInputFile.Text)) { lines.Add(line); } var format = new SubRip(); var sub = new Subtitle(); format.LoadSubtitle(sub, lines, textBoxInputFile.Text); foreach (ListViewItem item in listViewFonts.Items) { if (item.Checked) { _subtitleFontName = item.Text; _subtitleFontSize = Convert.ToInt32(comboBoxSubtitleFontSize.Items[comboBoxSubtitleFontSize.SelectedIndex].ToString()); var charactersLearned = new List <string>(); foreach (Paragraph p in sub.Paragraphs) { foreach (char ch in p.Text) { if (!char.IsWhiteSpace(ch)) { var s = ch.ToString(); if (!charactersLearned.Contains(s)) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, nOcrD, charactersLearned, s, false); if (checkBoxBold.Checked) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, nOcrD, charactersLearned, s, true); } } } } if (_abort) { break; } } if (_abort) { break; } } } labelInfo.Text = "Saving..."; labelInfo.Refresh(); saveFileDialog1.Filter = "nOCR DB|*.nocr"; saveFileDialog1.InitialDirectory = Configuration.OcrDirectory; if (saveFileDialog1.ShowDialog(this) == DialogResult.OK) { labelInfo.Text = $"Saving to {saveFileDialog1.FileName}..."; nOcrD.FileName = saveFileDialog1.FileName; nOcrD.Save(); labelInfo.Text = "Training done"; } else { labelInfo.Text = "Saving aborted"; } buttonOK.Enabled = true; buttonTrain.Text = "Start training"; _abort = false; }
private void buttonTrain_Click(object sender, EventArgs e) { if (buttonTrain.Text == LanguageSettings.Current.SpellCheck.Abort) { _abort = true; return; } _abort = false; buttonTrain.Text = LanguageSettings.Current.SpellCheck.Abort; buttonOK.Enabled = false; saveFileDialog1.DefaultExt = ".db"; saveFileDialog1.Filter = "*Binary Image Compare DB files|*.db"; if (saveFileDialog1.ShowDialog(this) != DialogResult.OK) { return; } buttonTrain.Text = LanguageSettings.Current.SpellCheck.Abort; var startFontSize = Convert.ToInt32(comboBoxSubtitleFontSize.Items[comboBoxSubtitleFontSize.SelectedIndex].ToString()); var endFontSize = Convert.ToInt32(comboBoxFontSizeEnd.Items[comboBoxFontSizeEnd.SelectedIndex].ToString()); if (!File.Exists(textBoxInputFile.Text)) { MessageBox.Show($"Input file '{textBoxInputFile.Text}' does not exist!"); return; } if (listViewFonts.CheckedItems.Count == 0) { MessageBox.Show("Please select at least one font!"); return; } var bicDb = new BinaryOcrDb(saveFileDialog1.FileName); int numberOfCharactersLearned = 0; int numberOfCharactersSkipped = 0; foreach (ListViewItem fontItem in listViewFonts.CheckedItems) { _subtitleFontName = fontItem.Text; for (_subtitleFontSize = startFontSize; _subtitleFontSize <= endFontSize; _subtitleFontSize++) { var lines = File.ReadAllLines(textBoxInputFile.Text).ToList(); var format = new SubRip(); var sub = new Subtitle(); format.LoadSubtitle(sub, lines, textBoxInputFile.Text); var charactersLearned = new List <string>(); foreach (var p in sub.Paragraphs) { labelInfo.Refresh(); Application.DoEvents(); foreach (char ch in p.Text) { if (!char.IsWhiteSpace(ch)) { var s = ch.ToString(); if (!charactersLearned.Contains(s)) { charactersLearned.Add(s); TrainLetter(ref numberOfCharactersLearned, ref numberOfCharactersSkipped, bicDb, s, false, false); if (checkBoxBold.Checked) { TrainLetter(ref numberOfCharactersLearned, ref numberOfCharactersSkipped, bicDb, s, true, false); } if (checkBoxItalic.Checked) { TrainLetter(ref numberOfCharactersLearned, ref numberOfCharactersSkipped, bicDb, s, false, true); } } labelInfo.Text = string.Format(LanguageSettings.Current.VobSubOcr.NowTraining, numberOfCharactersLearned, _subtitleFontName, numberOfCharactersSkipped); } } foreach (var text in textBoxMerged.Text.Split(' ')) { if (!string.IsNullOrWhiteSpace(text)) { if (!charactersLearned.Contains(text) && text.Length > 1 && text.Length <= 3) { charactersLearned.Add(text); TrainLetter(ref numberOfCharactersLearned, ref numberOfCharactersSkipped, bicDb, text, false, false); if (checkBoxBold.Checked) { TrainLetter(ref numberOfCharactersLearned, ref numberOfCharactersSkipped, bicDb, text, true, false); } if (checkBoxItalic.Checked) { TrainLetter(ref numberOfCharactersLearned, ref numberOfCharactersSkipped, bicDb, text, false, true); } } } } if (_abort) { break; } } if (_abort) { break; } } if (_abort) { break; } } bicDb.Save(); if (_abort) { labelInfo.Text = "Partially (aborted) training completed and saved in " + saveFileDialog1.FileName; } else { labelInfo.Text = "Training completed and saved in " + saveFileDialog1.FileName; } buttonOK.Enabled = true; buttonTrain.Text = "Start training"; _abort = false; }
private void buttonTrain_Click(object sender, EventArgs e) { saveFileDialog1.DefaultExt = ".db"; saveFileDialog1.Filter = "*Binary Image Compare DB files|*.db"; if (saveFileDialog1.ShowDialog(this) != DialogResult.OK) { return; } var startFontSize = Convert.ToInt32(comboBoxSubtitleFontSize.Items[comboBoxSubtitleFontSize.SelectedIndex].ToString()); var endFontSize = Convert.ToInt32(comboBoxFontSizeEnd.Items[comboBoxFontSizeEnd.SelectedIndex].ToString()); if (!File.Exists(textBoxInputFile.Text)) { MessageBox.Show($"Input file '{textBoxInputFile.Text}' does not exist!"); return; } if (listViewFonts.CheckedItems.Count == 1) { MessageBox.Show("Please select at least one font!"); return; } var bicDb = new BinaryOcrDb(saveFileDialog1.FileName); int numberOfCharactersLeaned = 0; int numberOfCharactersSkipped = 0; foreach (ListViewItem fontItem in listViewFonts.CheckedItems) { _subtitleFontName = fontItem.Text; for (_subtitleFontSize = startFontSize; _subtitleFontSize <= endFontSize; _subtitleFontSize++) { var lines = File.ReadAllLines(textBoxInputFile.Text).ToList(); var format = new SubRip(); var sub = new Subtitle(); format.LoadSubtitle(sub, lines, textBoxInputFile.Text); var charactersLearned = new List <string>(); foreach (var p in sub.Paragraphs) { foreach (char ch in p.Text) { if (!char.IsWhiteSpace(ch)) { var s = ch.ToString(); if (!charactersLearned.Contains(s)) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, bicDb, charactersLearned, s, false, false); TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, bicDb, charactersLearned, s, false, true); if (checkBoxBold.Checked) { TrainLetter(ref numberOfCharactersLeaned, ref numberOfCharactersSkipped, bicDb, charactersLearned, s, true, false); } } } } } } } bicDb.Save(); labelInfo.Text = "Training completed and saved in " + saveFileDialog1.FileName; }