Esempio n. 1
0
        private void Button_OpenImage_Click(object sender, EventArgs e)
        {
            string t_ImagePath = LibUtility.ClassUtility.OpenImageFile();

            m_OriginalImage  = Emgu.CV.CvInvoke.Imread(t_ImagePath, Emgu.CV.CvEnum.ImreadModes.Unchanged);
            m_ProcessedImage = m_OriginalImage.Clone();
            //Emgu.CV.Mat ttImage;
            //ttImage = LibUtility.ClassUtility.ConvertImageColor(m_ProcessedImage, 2);
            ZoomPanROIPictureBox_OriginalImage.Image  = m_OriginalImage.Bitmap;
            ZoomPanROIPictureBox_ProcessedImage.Image = m_ProcessedImage.Bitmap;

            ZoomPanROIPictureBox_OriginalImage.FitImageToCenter();
            ZoomPanROIPictureBox_ProcessedImage.FitImageToCenter();
        }
Esempio n. 2
0
        public static S_OCR_Result DoReconizeOCR(ref Emgu.CV.OCR.Tesseract f_OCR, Emgu.CV.Mat f_Mat)
        {
            Emgu.CV.Mat t_Mat = new Emgu.CV.Mat();
            if (f_Mat.NumberOfChannels != 1)
            {
                f_Mat.ConvertTo(t_Mat, Emgu.CV.CvEnum.DepthType.Cv8U);
            }
            else
            {
                t_Mat = f_Mat.Clone();
            }
            f_OCR.SetImage(t_Mat);
            f_OCR.Recognize();
            S_OCR_Result t_OCR_Result;

            t_OCR_Result.s_LineRectangle = new List <Rectangle>();
            t_OCR_Result.s_LineString    = new List <string>();
            t_OCR_Result.s_HOCR          = f_OCR.GetHOCRText();
            String t_GetUTF8Text = f_OCR.GetUTF8Text();

            String[] t_SpilitUTF8Text = t_GetUTF8Text.Split(System.Environment.NewLine.ToCharArray());
            for (int i = 0; i < t_SpilitUTF8Text.Length; i++)
            {
                t_SpilitUTF8Text[i] = t_SpilitUTF8Text[i].Trim();
                if (t_SpilitUTF8Text[i].Length > 0)
                {
                    t_OCR_Result.s_LineString.Add(t_SpilitUTF8Text[i]);
                }
            }
            Emgu.CV.OCR.Tesseract.Character[] t_Characters = f_OCR.GetCharacters();

            int       t_X = 0, t_Y = 0, t_Width = 0, t_Height = 0;
            bool      t_IsFirstWord = true;
            string    t_Text;
            Rectangle t_Region;

            for (int i = 0; i < t_Characters.Length; i++)
            {
                Emgu.CV.OCR.Tesseract.Character t_Character = t_Characters[i];
                t_Text   = t_Character.Text;
                t_Region = t_Character.Region;
                if (t_Character.Text == " ")
                {
                    continue;
                }
                //Emgu.CV.OCR.Tesseract.Character t_LastCharacter = t_Characters[i];
                if (t_IsFirstWord == true)
                {
                    t_IsFirstWord = false;
                    t_X           = t_Character.Region.X;
                    t_Y           = t_Character.Region.Y;
                }
                if (t_Character.Text == System.Environment.NewLine.ToString())
                {
                    t_IsFirstWord = true;
                    t_X           = t_Character.Region.X;
                    t_Y           = t_Character.Region.Y;
                    t_OCR_Result.s_LineRectangle.Add(new Rectangle(t_X, t_Y, t_Width, t_Height));
                }
            }



            return(t_OCR_Result);
        }