You can ow add post processing to an image before it gets used by Tesseract
This commit is contained in:
+10
-10
@@ -38,12 +38,10 @@ namespace TestVideo
|
||||
|
||||
string path = AppDomain.CurrentDomain.BaseDirectory + "Screens\\Baneer.png";
|
||||
|
||||
tbxResult.Text = DecodeTessereactResults(testTesseract(path), Image.FromFile(path), pbxOutput);
|
||||
tbxResult.Text = DecodeTessereactResults(testTesseract((Bitmap)Image.FromFile(path)), Image.FromFile(path), pbxOutput);
|
||||
//MessageBox.Show(DecodeTessereactResults(testTesseract(path), Image.FromFile(path), pbxOutput));
|
||||
}
|
||||
private Bitmap PrepareImage(Bitmap inputImage)
|
||||
{
|
||||
using (Graphics g = Graphics.FromImage(inputImage))
|
||||
{
|
||||
for (int y = 0; y < inputImage.Height; y++)
|
||||
{
|
||||
@@ -58,12 +56,10 @@ namespace TestVideo
|
||||
int finalValue = 0;
|
||||
if (grayScaleValue > 255 / 2)
|
||||
finalValue = 255;
|
||||
|
||||
inputImage.SetPixel(x, y, Color.FromArgb(finalValue, finalValue, finalValue));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//inputImage.Save("C:/TEST/test.png",ImageFormat.Png);
|
||||
return inputImage;
|
||||
}
|
||||
private string DecodeTessereactResults(string tesseractResult, Image inputImage, PictureBox resultPbx)
|
||||
@@ -124,7 +120,7 @@ namespace TestVideo
|
||||
//testTesseract(screenshot);
|
||||
|
||||
//SaveScreenshot(screenshot);
|
||||
MessageBox.Show(testTesseract(SaveScreenshot(screenshot)));
|
||||
MessageBox.Show(testTesseract(screenshot));
|
||||
return screenshot;
|
||||
}
|
||||
private string SaveScreenshot(Bitmap image)
|
||||
@@ -143,10 +139,15 @@ namespace TestVideo
|
||||
return path;
|
||||
}
|
||||
//http://leonwoo-tech.blogspot.com/2018/06/tip-how-to-properly-setup-opencv-ocr-to.html
|
||||
private string testTesseract(string filePath)
|
||||
private string testTesseract(Bitmap inputBmp)
|
||||
{
|
||||
string result = "";
|
||||
using (var image = new Image<Bgr, byte>(filePath))
|
||||
//To use this toImage you need : NuGet\Install-Package Emgu.CV.Bitmap -Version 4.5.5.4823
|
||||
inputBmp = PrepareImage(inputBmp);
|
||||
Image<Bgr, byte> emguImage = inputBmp.ToImage<Bgr, byte>();
|
||||
|
||||
//using (var image = new Image<Bgr, byte>(inputBmp))
|
||||
using (var image = emguImage)
|
||||
{
|
||||
using (Tesseract tesseractOcrProvider = new Tesseract(AppDomain.CurrentDomain.BaseDirectory + "\\Data", "eng", OcrEngineMode.Default))
|
||||
{
|
||||
@@ -158,7 +159,6 @@ namespace TestVideo
|
||||
// File.Delete(filePath);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void tmrScreenshots_Tick(object sender, EventArgs e)
|
||||
{
|
||||
//pbxInput.Image.Dispose();
|
||||
|
||||
@@ -104,6 +104,9 @@
|
||||
<PackageReference Include="Emgu.CV">
|
||||
<Version>4.5.5.4823</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Emgu.CV.Bitmap">
|
||||
<Version>4.5.5.4823</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Emgu.CV.runtime.windows">
|
||||
<Version>4.5.5.4823</Version>
|
||||
</PackageReference>
|
||||
|
||||
Reference in New Issue
Block a user