Commit bc632dd6 张东亮

1

1 个父辈 5fb72a03
......@@ -430,8 +430,7 @@ namespace BLL
if (algro)
{
codeOcr=PaddleOCRHelper.StartTest("..\\ocr.jpg");
}
else
if(string.IsNullOrEmpty(codeOcr))
{
#region ocrr文字提取开始
//ocr匹配调用
......@@ -449,11 +448,27 @@ namespace BLL
}
}
#endregion ocr文字提取结束
if(string.IsNullOrEmpty(codeOcr))
}
}
else
{
#region ocrr文字提取开始
//ocr匹配调用
var resp = namedPipeClient.Request("..\\ocr.jpg");
//ocr结果
var lp = JsonConvert.DeserializeObject<List<TextBlock>>(resp);
double maxbox = 0;
foreach (var l in lp)
{
codeOcr = PaddleOCRHelper.StartTest("..\\ocr.jpg");
var boxa = l.CalculateArea(l.BoxPoints);
if (boxa > maxbox)
{
maxbox = boxa;
codeOcr = l.Text;
}
}
#endregion ocr文字提取结束
}
var x = new BarcodeInfo() {Text=codeOcr,CodeType="OCR"};
......
......@@ -27,17 +27,16 @@ namespace BLL
/// <returns></returns>
public static string StartTest(string imgPath)
{
string ocr = StartCplusOcr(imgPath);
if (!string.IsNullOrEmpty(ocr))
{
return ocr;
}
ocr= StartPythonOcr(imgPath);
string ocr = "";
if (!AppIsRun())
{
var onnxexe = ".\\PaddleOCRSDK\\paddleOCR.exe";
var onnxexe = ".\\paddle\\paddleOCR.exe";
Process.Start(onnxexe);
}
if(AppIsRun())
{
ocr = StartCplusOcr(imgPath);
}
return ocr;
}
......@@ -52,7 +51,7 @@ namespace BLL
{
if (!AppIsRun())
{
var onnxexe = ".\\PaddleOCRSDK\\paddleOCR.exe";
var onnxexe = ".\\paddle\\paddleOCR.exe";
Process.Start(onnxexe);
Thread.Sleep(2000);
}
......
......@@ -100,6 +100,7 @@ namespace SmartScan
private string FormatCode(int index)
{
if (codeOcr.Count <= index) return "";
string text = codeOcr[index].Text;
List<string> arr = new();
for (int i = 0; i < codeMatch.Count; i++)
......@@ -219,8 +220,7 @@ namespace SmartScan
if (algro)
{
codeOcrs = PaddleOCRHelper.StartTest("..\\ocrt.jpg");
}
else
if(string.IsNullOrEmpty(codeOcrs))
{
var resp = Common.mateEdit.namedPipeClient.Request("..\\ocrt.jpg");
var lp = JsonConvert.DeserializeObject<List<TextBlock>>(resp);
......@@ -234,9 +234,21 @@ namespace SmartScan
codeOcrs = l.Text;
}
}
if (string.IsNullOrEmpty(codeOcrs))
}
}
else
{
codeOcrs = PaddleOCRHelper.StartTest("..\\ocrt.jpg");
var resp = Common.mateEdit.namedPipeClient.Request("..\\ocrt.jpg");
var lp = JsonConvert.DeserializeObject<List<TextBlock>>(resp);
double maxbox = 0;
foreach (var l in lp)
{
var boxa = l.CalculateArea(l.BoxPoints);
if (boxa > maxbox)
{
maxbox = boxa;
codeOcrs = l.Text;
}
}
}
return codeOcrs;
......
......@@ -4,6 +4,7 @@ using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
using System.Runtime.InteropServices;
using System.IO;
namespace SmartScan
{
......@@ -45,7 +46,7 @@ namespace SmartScan
var onnxexe = "onnx\\OcrLiteOnnxForm.exe";
Process.Start(onnxexe);
var paddle = ".\\PaddleOCRSDK\\paddleOCR.exe";
var paddle = "paddle\\paddleOCR.exe";
Process.Start(paddle);
......@@ -63,7 +64,8 @@ namespace SmartScan
fsp.WindowState = FormWindowState.Minimized;
Application.Run(fsp);
}else
}
else
Application.Run(Common.frmMain);
Exit();
......
......@@ -14,6 +14,7 @@ using Newtonsoft;
using Newtonsoft.Json;
using System.Runtime.InteropServices;
using System.Runtime.ExceptionServices;
using System.Security.Cryptography.X509Certificates;
namespace paddleOCR
{
......@@ -22,6 +23,7 @@ namespace paddleOCR
public Paddle()
{
InitializeComponent();
PaddleOCRHelper.Init();
}
private void button1_Click(object sender, EventArgs e)
......
......@@ -15,6 +15,10 @@ namespace paddleOCR
{
public class PaddleOCRHelper
{
public static void Init()
{
int code=eyemInitOCRRecognizer(".\\config.txt");
}
static string pythonEnvPath = ConfigHelper.Config.Get("pythonEnvPath", "C:\\ProgramData\\miniconda3\\envs\\paddle_env\\");
private static Process progressTest;
/// <summary>
......@@ -91,7 +95,7 @@ namespace paddleOCR
StringBuilder sb = new StringBuilder(1024);
try
{
eyemOCRRecognizer(".\\config.txt", imgPath, sb);
eyemOCRRecognizer(imgPath,ref sb);
}
catch (Exception ex)
{
......@@ -107,7 +111,10 @@ namespace paddleOCR
List<T> list = o as List<T>;
return list;
}
[DllImport("PaddleOCRSDK.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)]
private static extern int eyemInitOCRRecognizer(string extractorModelPath);
[DllImport("PaddleOCRSDK.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)]
private static extern int eyemOCRRecognizer(string extractorModelPath, string path, [MarshalAs(UnmanagedType.LPStr)] StringBuilder lpszContent);
private static extern int eyemOCRRecognizer(string path, ref StringBuilder lpszContent);
}
}
......@@ -17,23 +17,24 @@ namespace DeviceLibrary
{
Result result = new Result();
DateTime dateTime = DateTime.Now;
if (string.IsNullOrEmpty(ver))
{
result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
}
else if(ver.ToLower().Equals("python"))
{
//if (string.IsNullOrEmpty(ver))
//{
// result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
//}
//else
//if (ver.ToLower().Equals("python"))
//{
result.data = PaddleOCRHelper.StartPythonOcr(imgPath);
}
else if(ver.ToLower().Equals("cplus"))
{
result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
}
else
{
result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
}
//}
//else if(ver.ToLower().Equals("cplus"))
//{
// result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
//}
//else
//{
// result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
//}
result.ver = ver;
result.msg = $"Paddle Ocr elapsed:{(DateTime.Now-dateTime).TotalSeconds.ToString("f2")}s";
return result;
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!