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(); }
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); }