Added sample images
Added ClearImage for barcode reading
This commit is contained in:
parent
e81691ff53
commit
be4f973a9f
BIN
#research/Passport Demand Study Sample Letter.jpg
Normal file
BIN
#research/Passport Demand Study Sample Letter.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 247 KiB |
BIN
#research/Passport Demand Study Sample Letter.png
Normal file
BIN
#research/Passport Demand Study Sample Letter.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 600 KiB |
BIN
#research/Request-Letter-for-Portable-ID-Scanner-docx-1-320.webp
Normal file
BIN
#research/Request-Letter-for-Portable-ID-Scanner-docx-1-320.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
BIN
#research/test-barcode-1.jpg
Normal file
BIN
#research/test-barcode-1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
#research/test-handwriting-1.jpg
Normal file
BIN
#research/test-handwriting-1.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 393 KiB |
46
Form1.Designer.cs
generated
46
Form1.Designer.cs
generated
@ -29,23 +29,60 @@
|
||||
private void InitializeComponent()
|
||||
{
|
||||
button1 = new Button();
|
||||
richTextBox1 = new RichTextBox();
|
||||
button2 = new Button();
|
||||
button3 = new Button();
|
||||
SuspendLayout();
|
||||
//
|
||||
// button1
|
||||
//
|
||||
button1.Location = new Point(574, 237);
|
||||
button1.Location = new Point(549, 15);
|
||||
button1.Name = "button1";
|
||||
button1.Size = new Size(75, 23);
|
||||
button1.Size = new Size(208, 59);
|
||||
button1.TabIndex = 0;
|
||||
button1.Text = "button1";
|
||||
button1.Text = "Tesseract";
|
||||
button1.UseVisualStyleBackColor = true;
|
||||
button1.Click += button1_Click;
|
||||
//
|
||||
// richTextBox1
|
||||
//
|
||||
richTextBox1.DetectUrls = false;
|
||||
richTextBox1.HideSelection = false;
|
||||
richTextBox1.Location = new Point(9, 15);
|
||||
richTextBox1.Name = "richTextBox1";
|
||||
richTextBox1.Size = new Size(511, 402);
|
||||
richTextBox1.TabIndex = 1;
|
||||
richTextBox1.Text = "";
|
||||
richTextBox1.WordWrap = false;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
button2.Location = new Point(549, 122);
|
||||
button2.Name = "button2";
|
||||
button2.Size = new Size(208, 59);
|
||||
button2.TabIndex = 0;
|
||||
button2.Text = "ClearImage";
|
||||
button2.UseVisualStyleBackColor = true;
|
||||
button2.Click += button2_Click;
|
||||
//
|
||||
// button3
|
||||
//
|
||||
button3.Location = new Point(549, 249);
|
||||
button3.Name = "button3";
|
||||
button3.Size = new Size(208, 59);
|
||||
button3.TabIndex = 2;
|
||||
button3.Text = "button1";
|
||||
button3.UseVisualStyleBackColor = true;
|
||||
button3.Click += button3_Click;
|
||||
//
|
||||
// Form1
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
ClientSize = new Size(800, 450);
|
||||
Controls.Add(button3);
|
||||
Controls.Add(richTextBox1);
|
||||
Controls.Add(button2);
|
||||
Controls.Add(button1);
|
||||
Name = "Form1";
|
||||
Text = "Form1";
|
||||
@ -55,5 +92,8 @@
|
||||
#endregion
|
||||
|
||||
private Button button1;
|
||||
private RichTextBox richTextBox1;
|
||||
private Button button2;
|
||||
private Button button3;
|
||||
}
|
||||
}
|
||||
|
217
Form1.cs
217
Form1.cs
@ -1,88 +1,197 @@
|
||||
using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using Inlite.ClearImageNet;
|
||||
using Tesseract;
|
||||
|
||||
namespace WinFormsApp3
|
||||
{
|
||||
public partial class Form1 : Form
|
||||
{
|
||||
private readonly string _basePath;
|
||||
private readonly string _tessDataPath;
|
||||
|
||||
public Form1()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
_basePath = Path.GetFullPath(Path.GetDirectoryName(Application.ExecutablePath) + "\\..\\..\\..\\");
|
||||
_tessDataPath = Path.Combine(_basePath, "#research", "tessdata");
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
richTextBox1.Clear();
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
var basePath = Path.GetFullPath(Path.GetDirectoryName(Application.ExecutablePath) + "\\..\\..\\..\\");
|
||||
var testImagePath = Path.Combine(_basePath, "#research", "Passport Demand Study Sample Letter.jpg");
|
||||
|
||||
var testImagePath = Path.Combine(basePath, "Scan_ADFPA_Letter_page-0001.jpg");
|
||||
richTextBox1.Text += ParseOCR(testImagePath);
|
||||
richTextBox1.Text += Environment.NewLine;
|
||||
}
|
||||
|
||||
private void button2_Click(object sender, EventArgs e)
|
||||
{
|
||||
var testImagePath = Path.Combine(_basePath, "#research", "Passport Demand Study Sample Letter.jpg");
|
||||
|
||||
var barcodes = ReadBarcode(testImagePath);
|
||||
foreach (var barcode in barcodes)
|
||||
{
|
||||
richTextBox1.Text += $"Barcode Type = {barcode.Type} | Value = {barcode.Text} | Page = {barcode.Page}";
|
||||
richTextBox1.Text += Environment.NewLine;
|
||||
}
|
||||
}
|
||||
|
||||
private void button3_Click(object sender, EventArgs e)
|
||||
{
|
||||
var testImagePath = Path.Combine(_basePath, "#research", "Passport Demand Study Sample Letter.jpg");
|
||||
|
||||
richTextBox1.Text += Environment.NewLine;
|
||||
|
||||
}
|
||||
|
||||
////var basePath = Path.GetFullPath(Path.GetDirectoryName(Application.ExecutablePath) + "\\..\\..\\..\\");
|
||||
|
||||
|
||||
////var tt2 = File.Exists(testImagePath);
|
||||
|
||||
//try
|
||||
//{
|
||||
// using (var engine = new TesseractEngine(_tessDataPath, "eng", EngineMode.Default))
|
||||
// {
|
||||
// using (var img = Pix.LoadFromFile(testImagePath))
|
||||
// {
|
||||
// using (var page = engine.Process(img))
|
||||
// {
|
||||
// Console.WriteLine("Mean Confidence = {0}", page.GetMeanConfidence());
|
||||
|
||||
// //var tt1 = page.GetLSTMBoxText(0);
|
||||
// //var tt1 = page.GetAltoText(0);
|
||||
// //var tt1 = page.GetBoxText(0);
|
||||
// //var tt1 = page.GetHOCRText(0);
|
||||
// //var tt1 = page.GetMeanConfidence();
|
||||
// var tt1 = page.GetText();
|
||||
// //var tt1 = page.GetUNLVText();
|
||||
|
||||
|
||||
|
||||
|
||||
// //Console.WriteLine("Text (GetText): \r\n{0}", text);
|
||||
// //Console.WriteLine("Text (iterator):");
|
||||
// //using (var iter = page.GetIterator())
|
||||
// //{
|
||||
// // iter.Begin();
|
||||
|
||||
// // do
|
||||
// // {
|
||||
// // do
|
||||
// // {
|
||||
// // do
|
||||
// // {
|
||||
// // do
|
||||
// // {
|
||||
// // if (iter.IsAtBeginningOf(PageIteratorLevel.Block))
|
||||
// // {
|
||||
// // Console.WriteLine("<BLOCK>");
|
||||
// // }
|
||||
|
||||
// // Console.Write(iter.GetText(PageIteratorLevel.Word));
|
||||
// // Console.Write(" ");
|
||||
|
||||
// // if (iter.IsAtFinalOf(PageIteratorLevel.TextLine, PageIteratorLevel.Word))
|
||||
// // {
|
||||
// // Console.WriteLine();
|
||||
// // }
|
||||
// // } while (iter.Next(PageIteratorLevel.TextLine, PageIteratorLevel.Word));
|
||||
|
||||
// // if (iter.IsAtFinalOf(PageIteratorLevel.Para, PageIteratorLevel.TextLine))
|
||||
// // {
|
||||
// // Console.WriteLine();
|
||||
// // }
|
||||
// // } while (iter.Next(PageIteratorLevel.Para, PageIteratorLevel.TextLine));
|
||||
// // } while (iter.Next(PageIteratorLevel.Block, PageIteratorLevel.Para));
|
||||
// // } while (iter.Next(PageIteratorLevel.Block));
|
||||
// //}
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
//catch (Exception exc)
|
||||
//{
|
||||
// //Trace.TraceError(exc.ToString());
|
||||
// Console.WriteLine("Unexpected Error: " + exc.Message);
|
||||
// //Console.WriteLine("Details: ");
|
||||
// //Console.WriteLine(exc.ToString());
|
||||
//}
|
||||
//}
|
||||
|
||||
|
||||
private string ParseOCR(string filename)
|
||||
{
|
||||
string response = null;
|
||||
|
||||
try
|
||||
{
|
||||
using (var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default))
|
||||
using (var engine = new TesseractEngine(_tessDataPath, "eng", EngineMode.Default))
|
||||
{
|
||||
using (var img = Pix.LoadFromFile(testImagePath))
|
||||
using (var img = Pix.LoadFromFile(filename))
|
||||
{
|
||||
using (var page = engine.Process(img))
|
||||
{
|
||||
Debug.WriteLine("Mean Confidence = {0}", page.GetMeanConfidence());
|
||||
|
||||
//var tt2 = page.GetAltoText(0);
|
||||
//var tt3 = page.GetBoxText(0);
|
||||
//var tt4 = page.GetHOCRText(0);
|
||||
//var tt1 = page.GetLSTMBoxText(0);
|
||||
//var tt1 = page.GetAltoText(0);
|
||||
//var tt1 = page.GetBoxText(0);
|
||||
//var tt1 = page.GetHOCRText(0);
|
||||
//var tt1 = page.GetMeanConfidence();
|
||||
//var tt1 = page.GetText();
|
||||
//var tt5 = page.GetMeanConfidence();
|
||||
//var tt7 = page.GetTsvText(0);
|
||||
//var tt6 = page.GetUNLVText();
|
||||
|
||||
var tt1 = page.GetUNLVText();
|
||||
|
||||
|
||||
//Console.WriteLine("Mean confidence: {0}", page.GetMeanConfidence());
|
||||
|
||||
//Console.WriteLine("Text (GetText): \r\n{0}", text);
|
||||
//Console.WriteLine("Text (iterator):");
|
||||
//using (var iter = page.GetIterator())
|
||||
//{
|
||||
// iter.Begin();
|
||||
|
||||
// do
|
||||
// {
|
||||
// do
|
||||
// {
|
||||
// do
|
||||
// {
|
||||
// do
|
||||
// {
|
||||
// if (iter.IsAtBeginningOf(PageIteratorLevel.Block))
|
||||
// {
|
||||
// Console.WriteLine("<BLOCK>");
|
||||
// }
|
||||
|
||||
// Console.Write(iter.GetText(PageIteratorLevel.Word));
|
||||
// Console.Write(" ");
|
||||
|
||||
// if (iter.IsAtFinalOf(PageIteratorLevel.TextLine, PageIteratorLevel.Word))
|
||||
// {
|
||||
// Console.WriteLine();
|
||||
// }
|
||||
// } while (iter.Next(PageIteratorLevel.TextLine, PageIteratorLevel.Word));
|
||||
|
||||
// if (iter.IsAtFinalOf(PageIteratorLevel.Para, PageIteratorLevel.TextLine))
|
||||
// {
|
||||
// Console.WriteLine();
|
||||
// }
|
||||
// } while (iter.Next(PageIteratorLevel.Para, PageIteratorLevel.TextLine));
|
||||
// } while (iter.Next(PageIteratorLevel.Block, PageIteratorLevel.Para));
|
||||
// } while (iter.Next(PageIteratorLevel.Block));
|
||||
//}
|
||||
response = page.GetText();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Trace.TraceError(exc.ToString());
|
||||
Console.WriteLine("Unexpected Error: " + exc.Message);
|
||||
Console.WriteLine("Details: ");
|
||||
Console.WriteLine(exc.ToString());
|
||||
// error
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
private Barcode[] ReadBarcode(string filename)
|
||||
{
|
||||
var result = new Barcode[0];
|
||||
|
||||
try
|
||||
{
|
||||
using (BarcodeReader reader = new BarcodeReader())
|
||||
{
|
||||
reader.Code39 = true;
|
||||
reader.Code128 = true;
|
||||
reader.Upca = true;
|
||||
reader.Upce = true;
|
||||
reader.QR = true;
|
||||
|
||||
result = reader.Read(filename, 0);
|
||||
|
||||
//foreach (var barcode in result)
|
||||
//{
|
||||
// Debug.WriteLine($"Barcode type: {barcode.Type} Barcode page: {barcode.Page} Text: {barcode.Text}");
|
||||
//}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Debug.WriteLine(exc.Message);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,13 +2,14 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net8.0-windows</TargetFramework>
|
||||
<TargetFramework>net8.0-windows8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ClearImage.BarcodeReader.IP" Version="12.0.7675" />
|
||||
<PackageReference Include="Tesseract" Version="5.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user