コード例 #1
0
        static void Main(string[] args)
        {
            try
            {
                OCR myApp = new OCR(args);

                string result = null;

                var task = Task.Run(async() =>
                {
                    result = await myApp.Run();
                });

                task.Wait();

                if (result == null)
                {
                    Environment.ExitCode = 1;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Unhandled exception in {0}: {1}", System.IO.Path.GetFileName(Environment.GetCommandLineArgs()[0]), e);

                Environment.ExitCode = 2;
            }
        }
コード例 #2
0
        public void Execute()
        {
            WorkPackage WorkPackage;

            int[] Assignment;

            Console.WriteLine("Execute " + this.GetType().ToString());

            //Read the wordlist from disc
            WordList tempWordList = new WordList();

            m_Wordlist = tempWordList.LoadXML(OCR.BaseFolder() + "wordlist.xml");

            //create a workpackage per thread.
            for (int i = 0; i < ThreadCount; i++)
            {
                WorkPackage        = new WorkPackage();
                WorkPackage.Method = ExecuteActivity;
                WorkPackage.Image  = Image;

                Assignment    = new int[2];
                Assignment[0] = i;           //start index
                Assignment[1] = ThreadCount; //step size through list

                WorkPackage.Assignment = (object)Assignment;
                WorkPackage.Parameter  = (object)m_Wordlist;
                RunPackage(WorkPackage);
            }

            WaitForWorkDone(this.GetType().ToString());
        }
コード例 #3
0
ファイル: InputForm.cs プロジェクト: NadaElawad/OCR
        void Train(PrinicpleComponentAnalysis PCA)
        {
            int    num_HiddenLayers = Int32.Parse(hiddenLayerTxt.Text);
            double alpha            = Double.Parse(learningRateTxt.Text);
            double threshold        = Double.Parse(errorThresholdTxt.Text);

            int[] layers               = new int[num_HiddenLayers + 2];
            int   num_Classes          = 5;
            int   num_TrainingPerClass = 44;

            if (PCA != null)
            {
                layers[0] = PCA.num_Components;
            }
            else
            {
                layers[0] = 30 * 30;
            }
            layers[num_HiddenLayers + 1] = num_Classes;

            for (int i = 0; i < num_HiddenLayers; i++)
            {
                if (neuronsPerLayerGridView.Rows[i].Cells[0].Value == null)
                {
                    MessageBox.Show("Please Enter Number of Neurons Per Each Layer!");
                    return;
                }
                layers[i + 1] = Int32.Parse(neuronsPerLayerGridView.Rows[i].Cells[0].Value.ToString());
            }
            ocrApp = new OCR(layers, num_Classes, alpha, threshold, mainTransferFunction);
            if (PCA != null)
            {
                int num_Epochs = Int32.Parse(numEpochsTxtBox.Text);
                ocrApp.SetPCA(PCA, num_Epochs);
                ocrApp.ReduceData(num_TrainingPerClass);
                meanSquareError = ocrApp.LearnOnReducedData(num_TrainingPerClass);
            }
            else
            {
                meanSquareError = ocrApp.Learn(num_TrainingPerClass);
            }
        }
コード例 #4
0
ファイル: frmOCR.cs プロジェクト: abedGNU/LibreCV-cSharp
        public frmOCR()
        {
            InitializeComponent();
            mlpOCR = new OCR.OCR();

            button1.Enabled = false;
            button2.Enabled = false;
            button3.Enabled = false;
            button4.Enabled = false;
            //

            /*
             * this.txt[0] = new System.Windows.Forms.TextBox();
             * gbCharclasses.Controls.Add(this.txt[0]);
             * this.txt[0].Location = new System.Drawing.Point(6, 19);
             *
             * this.txt[1] = new System.Windows.Forms.TextBox();
             * gbCharclasses.Controls.Add(this.txt[1]);
             * this.txt[1].Location = new System.Drawing.Point(6, 50);
             */
        }
コード例 #5
0
        public ShapeNet()
        {
            InitializeComponent();

            pbVertical.Vertical       = true;
            pbStrokeVertical.Vertical = true;

            m_OCR          = new OCR.OCR();
            m_UserSettings = OCRStub.Window1.m_UserSettings;

            m_UserSettings.AddControl(this, txtSample);
            m_UserSettings.AddControl(this, txtThinningSample);
            m_UserSettings.AddControl(this, txtNodesLayer1);
            m_UserSettings.AddControl(this, txtNodesLayer2);
            m_UserSettings.AddControl(this, txtRepetitions);
            m_UserSettings.AddControl(this, tabShapeNetFunctions);
            m_UserSettings.AddControl(this, ThinningAlgorithm);
            m_UserSettings.AddControl(this, lstNeuralNetworks);
            m_UserSettings.AddControl(this, txtWordListSource);
            m_UserSettings.AddControl(this, txtWord);
        }
コード例 #6
0
        /// <summary>
        /// This function process the workpackage for recognising the characters
        /// </summary>
        /// <param name="Parameter"></param>
        public static void ExecuteActivity(object Parameter)
        {
            //Load the neural network
            ShapeNeuralNetworkCollection ShapeNet;

            ShapeNeuralNetworkCollection SC = new ShapeNeuralNetworkCollection();

            ShapeNet = SC.Load(OCR.BaseFolder() + "Shapenet.xml");

            //Initialize the workpackage
            WorkPackage WorkPackage = (WorkPackage)Parameter;

            int[] Assignment = (int[])WorkPackage.Assignment;

            //Run the package
            for (int index = Assignment[0];
                 index < WorkPackage.Image.Components.Count;
                 index += Assignment[1])
            {
                Recognise(ShapeNet.ShapeNets[2], WorkPackage.Image.Components[index]);
            }

            SignalWorkDone();
        }
コード例 #7
0
ファイル: MainWindow.xaml.cs プロジェクト: Meusesoft/OCR
        /// <summary>
        /// Constructor of the main window
        /// </summary>
        public Window1()
        {
            m_OCR = new OCR.OCR();

            //m_UserSettings = new UserSettings();
            //m_UserSettings.m_filename = "d:\\ocr\\settings.xml";

            m_UserSettings = UserSettings.Load("d:\\ocr\\settings.xml");

            InitializeComponent();

            sldThreadCount.Maximum = System.Environment.ProcessorCount;

            m_UserSettings.AddControl(this, sldThreadCount);
            m_UserSettings.AddControl(this, txtTraceFeatureFolder);
            m_UserSettings.AddControl(this, txtImageFile);
            m_UserSettings.AddControl(this, chkDebug);
            m_UserSettings.AddControl(this, chkDrawComponents);
            m_UserSettings.AddControl(this, chkDrawSentenceBox);
            m_UserSettings.AddControl(this, chkDrawSentenceLine);
            m_UserSettings.AddControl(this, chkTraceFeatures);
            m_UserSettings.AddControl(this, chkApplySplitConnected);
            m_UserSettings.AddControl(this, chkApplyWordList);
        }
コード例 #8
0
ファイル: MainWindow.xaml.cs プロジェクト: Meusesoft/OCR
 private static void bw_DoWork(object sender, DoWorkEventArgs e)
 {
     OCR.OCR i_OCR = (OCR.OCR)e.Argument;
     i_OCR.Execute();
 }