You can ow add post processing to an image before it gets used by Tesseract

This commit is contained in:
2022-10-15 10:27:53 +02:00
parent 70bb7b1f74
commit 75cc939b45
2 changed files with 26 additions and 23 deletions
+10 -10
View File
@@ -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();
+3
View File
@@ -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>