static void Main(string[] args) { TestService testService = new TestService(); testService.ServiceEventFired += s => { Console.WriteLine("SERVICE: {0}", s); }; RecognitionCore core = new RecognitionCore("E:\\Nox\\plugins"); core.LoadCommandSet(new TestServiceCommandSet()); core.AddService<ISpeechSynthesizer>(new NoxSpeechSynthesizer()); core.AddService<TestService>(testService); core.Start(); Console.WriteLine("Press Enter to Exit"); Console.ReadLine(); core.Stop(); }
public void Setup() { _recognitionEngine = new SpeechRecognitionEngine(); _recognitionCore = new RecognitionCore("plugins", _recognitionEngine); }
private void AutoThread(object param) { if (Samples == null) { return; } for (int i = 0; i < Samples.Count; ++i) { SelectSample(Samples[i]); complete = false; this.BeginInvoke( new Action(delegate() { btnFull_Click(null, null); })); while (!complete) { Thread.Sleep(200); } } var factor = 0.15; for (int j = 0; j < 8; ++j) { coreC = coreD = coreF = null; RecognitionParameters.CompactFactor = factor; RecognitionParameters.DischargeFactor = factor; complete = true; for (int i = 0; i < Samples.Count; ++i) { SelectSample(Samples[i]); complete = false; this.BeginInvoke( new Action(delegate() { btnCompact_Click(null, null); })); while (!complete) { Thread.Sleep(200); } complete = false; this.BeginInvoke( new Action(delegate() { btnDischarged_Click(null, null); })); while (!complete) { Thread.Sleep(200); } /*complete = false; * this.BeginInvoke( * new Action(delegate() * { * btnFull_Click(null, null); * })); * while (!complete) * { * Thread.Sleep(200); * }*/ } factor += 0.05; } this.BeginInvoke( new Action(delegate() { btnAuto.Enabled = true; })); }
private TextureRecognition() { core = new RecognitionCore(); CurrentClass = null; }
private void RecognizeThread(object param) { var id = (int)param; RecognitionCore core = null; RecognitionSample currentSample = null; Bitmap currentImage = null; string pref = ""; switch (id) { case 1: pref = " (Полная выборка)"; core = coreF; currentSample = SampleF; currentImage = workImage; break; case 2: pref = " (Компактная выборка)"; core = coreC; currentSample = SampleC; currentImage = workImage; break; case 3: pref = " (Разряженная выборка)"; core = coreD; currentSample = SampleD; currentImage = workImage; break; default: break; } if (core == null) { core = new RecognitionCore(); for (int i = 0; i < recognition.Core.TextureClassCount; ++i) { var their = recognition.Core.GetTextureClass(i); core.AddTextureClass(their.Name, their.RegionColor); } for (int i = 0; i < core.TextureClassCount; ++i) { var currentClass = core.GetTextureClass(i); this.BeginInvoke( new Action(delegate() { lbOutput.Items.Add("Начато обучение классу " + currentClass.Name); lbOutput.SelectedIndex = lbOutput.Items.Count - 1; })); switch (id) { case 1: currentClass.Teach(teachingSamples[i], GetImagesToTeach(teachingSamples[i])); break; case 2: currentClass.TeachCompact(teachingSamples[i], GetImagesToTeach(teachingSamples[i])); break; case 3: currentClass.TeachDischarged(teachingSamples[i], GetImagesToTeach(teachingSamples[i])); break; default: currentClass.Teach(teachingSamples[i], GetImagesToTeach(teachingSamples[i])); break; } while (currentClass.IsTeaching) { Thread.Sleep(200); } var result = this.BeginInvoke( new Action(delegate() { var count = currentClass.KnownSamplesNumber(TextureFeatures.GLCM); var part = count / (float)teachingSamples[i].Count; lbOutput.Items.Add(" После обучения получено образцов GLCM: " + count.ToString() + " (" + part.ToString() + ")"); count = currentClass.KnownSamplesNumber(TextureFeatures.LBP); part = count / (float)teachingSamples[i].Count; lbOutput.Items.Add(" После обучения получено образцов LBP: " + count.ToString() + " (" + part.ToString() + ")"); lbOutput.SelectedIndex = lbOutput.Items.Count - 1; })); while (!result.IsCompleted) { Thread.Sleep(50); } } } switch (id) { case 1: coreF = core; break; case 2: coreC = core; break; case 3: coreD = core; break; default: break; } if (currentSample == null) { this.BeginInvoke( new Action(delegate() { lbOutput.Items.Add("Начато распознавание тестового изображения"); lbOutput.SelectedIndex = lbOutput.Items.Count - 1; })); currentSample = new RecognitionSample(core, sample.Path); currentSample.Recognize(); currentImage = currentSample.GetSampleImage(); switch (id) { case 1: SampleF = currentSample; workImage = currentImage; break; case 2: SampleC = currentSample; workImage = currentImage; break; case 3: SampleD = currentSample; workImage = currentImage; break; default: break; } } var iRes = this.BeginInvoke( new Action(delegate() { lbOutput.Items.Add(currentSample.Path); var result = sample.CompareFeature(currentSample, TextureFeatures.GLCM); lbOutput.Items.Add(pref + " Соответствие GLCM = " + result.ToString()); result = sample.CompareFeature(currentSample, TextureFeatures.LBP); lbOutput.Items.Add(pref + " Соответствие LBP = " + result.ToString()); lbOutput.SelectedIndex = lbOutput.Items.Count - 1; pbWork.Image = currentImage; msMenu.Enabled = true; btnSelectSample.Enabled = true; btnSelectSamples.Enabled = true; cbTextureClass.Enabled = true; btnCompact.Enabled = true; btnDischarged.Enabled = true; btnFull.Enabled = true; })); while (!iRes.IsCompleted) { Thread.Sleep(20); } complete = true; }