Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
顾剑亮
/
SmartScan
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit bc632dd6
由
张东亮
编写于
2023-03-14 15:04:43 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1
1 个父辈
5fb72a03
全部展开
显示空白字符变更
内嵌
并排
正在显示
22 个修改的文件
包含
73 行增加
和
35 行删除
BLL/MaterialEdit.cs
BLL/PaddleOCRHelper.cs
BLL/bin/Debug/BLL.dll
BLL/bin/Debug/BLL.pdb
BLL/obj/Debug/BLL.csproj.AssemblyReference.cache
BLL/obj/Debug/BLL.dll
BLL/obj/Debug/BLL.pdb
DAL/obj/Debug/DAL.csproj.AssemblyReference.cache
SmartScan/Form/FrmCodeOCR.cs
SmartScan/Program.cs
SmartScan/bin/Debug/BLL.dll
SmartScan/bin/Debug/BLL.pdb
SmartScan/bin/Debug/Logs/SmartScan.log
SmartScan/bin/Debug/Logs/VisionLib.log
SmartScan/bin/Debug/SmartScan.exe
SmartScan/bin/Debug/SmartScan.pdb
SmartScan/obj/Debug/SmartScan.csproj.AssemblyReference.cache
SmartScan/obj/Debug/SmartScan.exe
SmartScan/obj/Debug/SmartScan.pdb
paddleOCR/Form1.cs
paddleOCR/PaddleOCRHelper.cs
paddleOCR/service/Service.cs
BLL/MaterialEdit.cs
查看文件 @
bc632dd
...
@@ -430,8 +430,7 @@ namespace BLL
...
@@ -430,8 +430,7 @@ namespace BLL
if
(
algro
)
if
(
algro
)
{
{
codeOcr
=
PaddleOCRHelper
.
StartTest
(
"..\\ocr.jpg"
);
codeOcr
=
PaddleOCRHelper
.
StartTest
(
"..\\ocr.jpg"
);
}
if
(
string
.
IsNullOrEmpty
(
codeOcr
))
else
{
{
#
region
ocrr
文字提取开始
#
region
ocrr
文字提取开始
//ocr匹配调用
//ocr匹配调用
...
@@ -449,11 +448,27 @@ namespace BLL
...
@@ -449,11 +448,27 @@ namespace BLL
}
}
}
}
#
endregion
ocr
文字提取结束
#
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"
};
var
x
=
new
BarcodeInfo
()
{
Text
=
codeOcr
,
CodeType
=
"OCR"
};
...
...
BLL/PaddleOCRHelper.cs
查看文件 @
bc632dd
...
@@ -27,17 +27,16 @@ namespace BLL
...
@@ -27,17 +27,16 @@ namespace BLL
/// <returns></returns>
/// <returns></returns>
public
static
string
StartTest
(
string
imgPath
)
public
static
string
StartTest
(
string
imgPath
)
{
{
string
ocr
=
StartCplusOcr
(
imgPath
);
string
ocr
=
""
;
if
(!
string
.
IsNullOrEmpty
(
ocr
))
{
return
ocr
;
}
ocr
=
StartPythonOcr
(
imgPath
);
if
(!
AppIsRun
())
if
(!
AppIsRun
())
{
{
var
onnxexe
=
".\\
PaddleOCRSDK
\\paddleOCR.exe"
;
var
onnxexe
=
".\\
paddle
\\paddleOCR.exe"
;
Process
.
Start
(
onnxexe
);
Process
.
Start
(
onnxexe
);
}
}
if
(
AppIsRun
())
{
ocr
=
StartCplusOcr
(
imgPath
);
}
return
ocr
;
return
ocr
;
}
}
...
@@ -52,7 +51,7 @@ namespace BLL
...
@@ -52,7 +51,7 @@ namespace BLL
{
{
if
(!
AppIsRun
())
if
(!
AppIsRun
())
{
{
var
onnxexe
=
".\\
PaddleOCRSDK
\\paddleOCR.exe"
;
var
onnxexe
=
".\\
paddle
\\paddleOCR.exe"
;
Process
.
Start
(
onnxexe
);
Process
.
Start
(
onnxexe
);
Thread
.
Sleep
(
2000
);
Thread
.
Sleep
(
2000
);
}
}
...
...
BLL/bin/Debug/BLL.dll
查看文件 @
bc632dd
此文件类型无法预览
BLL/bin/Debug/BLL.pdb
查看文件 @
bc632dd
此文件类型无法预览
BLL/obj/Debug/BLL.csproj.AssemblyReference.cache
查看文件 @
bc632dd
此文件类型无法预览
BLL/obj/Debug/BLL.dll
查看文件 @
bc632dd
此文件类型无法预览
BLL/obj/Debug/BLL.pdb
查看文件 @
bc632dd
此文件类型无法预览
DAL/obj/Debug/DAL.csproj.AssemblyReference.cache
查看文件 @
bc632dd
此文件类型无法预览
SmartScan/Form/FrmCodeOCR.cs
查看文件 @
bc632dd
...
@@ -100,6 +100,7 @@ namespace SmartScan
...
@@ -100,6 +100,7 @@ namespace SmartScan
private
string
FormatCode
(
int
index
)
private
string
FormatCode
(
int
index
)
{
{
if
(
codeOcr
.
Count
<=
index
)
return
""
;
string
text
=
codeOcr
[
index
].
Text
;
string
text
=
codeOcr
[
index
].
Text
;
List
<
string
>
arr
=
new
();
List
<
string
>
arr
=
new
();
for
(
int
i
=
0
;
i
<
codeMatch
.
Count
;
i
++)
for
(
int
i
=
0
;
i
<
codeMatch
.
Count
;
i
++)
...
@@ -219,8 +220,7 @@ namespace SmartScan
...
@@ -219,8 +220,7 @@ namespace SmartScan
if
(
algro
)
if
(
algro
)
{
{
codeOcrs
=
PaddleOCRHelper
.
StartTest
(
"..\\ocrt.jpg"
);
codeOcrs
=
PaddleOCRHelper
.
StartTest
(
"..\\ocrt.jpg"
);
}
if
(
string
.
IsNullOrEmpty
(
codeOcrs
))
else
{
{
var
resp
=
Common
.
mateEdit
.
namedPipeClient
.
Request
(
"..\\ocrt.jpg"
);
var
resp
=
Common
.
mateEdit
.
namedPipeClient
.
Request
(
"..\\ocrt.jpg"
);
var
lp
=
JsonConvert
.
DeserializeObject
<
List
<
TextBlock
>>(
resp
);
var
lp
=
JsonConvert
.
DeserializeObject
<
List
<
TextBlock
>>(
resp
);
...
@@ -234,9 +234,21 @@ namespace SmartScan
...
@@ -234,9 +234,21 @@ namespace SmartScan
codeOcrs
=
l
.
Text
;
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
;
return
codeOcrs
;
...
...
SmartScan/Program.cs
查看文件 @
bc632dd
...
@@ -4,6 +4,7 @@ using System.Windows.Forms;
...
@@ -4,6 +4,7 @@ using System.Windows.Forms;
using
System.Diagnostics
;
using
System.Diagnostics
;
using
System.Threading
;
using
System.Threading
;
using
System.Runtime.InteropServices
;
using
System.Runtime.InteropServices
;
using
System.IO
;
namespace
SmartScan
namespace
SmartScan
{
{
...
@@ -45,7 +46,7 @@ namespace SmartScan
...
@@ -45,7 +46,7 @@ namespace SmartScan
var
onnxexe
=
"onnx\\OcrLiteOnnxForm.exe"
;
var
onnxexe
=
"onnx\\OcrLiteOnnxForm.exe"
;
Process
.
Start
(
onnxexe
);
Process
.
Start
(
onnxexe
);
var
paddle
=
"
.\\PaddleOCRSDK
\\paddleOCR.exe"
;
var
paddle
=
"
paddle
\\paddleOCR.exe"
;
Process
.
Start
(
paddle
);
Process
.
Start
(
paddle
);
...
@@ -63,7 +64,8 @@ namespace SmartScan
...
@@ -63,7 +64,8 @@ namespace SmartScan
fsp
.
WindowState
=
FormWindowState
.
Minimized
;
fsp
.
WindowState
=
FormWindowState
.
Minimized
;
Application
.
Run
(
fsp
);
Application
.
Run
(
fsp
);
}
else
}
else
Application
.
Run
(
Common
.
frmMain
);
Application
.
Run
(
Common
.
frmMain
);
Exit
();
Exit
();
...
...
SmartScan/bin/Debug/BLL.dll
查看文件 @
bc632dd
此文件类型无法预览
SmartScan/bin/Debug/BLL.pdb
查看文件 @
bc632dd
此文件类型无法预览
SmartScan/bin/Debug/Logs/SmartScan.log
查看文件 @
bc632dd
此文件的差异被折叠,
点击展开。
SmartScan/bin/Debug/Logs/VisionLib.log
查看文件 @
bc632dd
此文件的差异被折叠,
点击展开。
SmartScan/bin/Debug/SmartScan.exe
查看文件 @
bc632dd
此文件类型无法预览
SmartScan/bin/Debug/SmartScan.pdb
查看文件 @
bc632dd
此文件类型无法预览
SmartScan/obj/Debug/SmartScan.csproj.AssemblyReference.cache
查看文件 @
bc632dd
此文件类型无法预览
SmartScan/obj/Debug/SmartScan.exe
查看文件 @
bc632dd
此文件类型无法预览
SmartScan/obj/Debug/SmartScan.pdb
查看文件 @
bc632dd
此文件类型无法预览
paddleOCR/Form1.cs
查看文件 @
bc632dd
...
@@ -14,6 +14,7 @@ using Newtonsoft;
...
@@ -14,6 +14,7 @@ using Newtonsoft;
using
Newtonsoft.Json
;
using
Newtonsoft.Json
;
using
System.Runtime.InteropServices
;
using
System.Runtime.InteropServices
;
using
System.Runtime.ExceptionServices
;
using
System.Runtime.ExceptionServices
;
using
System.Security.Cryptography.X509Certificates
;
namespace
paddleOCR
namespace
paddleOCR
{
{
...
@@ -22,6 +23,7 @@ namespace paddleOCR
...
@@ -22,6 +23,7 @@ namespace paddleOCR
public
Paddle
()
public
Paddle
()
{
{
InitializeComponent
();
InitializeComponent
();
PaddleOCRHelper
.
Init
();
}
}
private
void
button1_Click
(
object
sender
,
EventArgs
e
)
private
void
button1_Click
(
object
sender
,
EventArgs
e
)
...
...
paddleOCR/PaddleOCRHelper.cs
查看文件 @
bc632dd
...
@@ -15,6 +15,10 @@ namespace paddleOCR
...
@@ -15,6 +15,10 @@ namespace paddleOCR
{
{
public
class
PaddleOCRHelper
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\\"
);
static
string
pythonEnvPath
=
ConfigHelper
.
Config
.
Get
(
"pythonEnvPath"
,
"C:\\ProgramData\\miniconda3\\envs\\paddle_env\\"
);
private
static
Process
progressTest
;
private
static
Process
progressTest
;
/// <summary>
/// <summary>
...
@@ -91,7 +95,7 @@ namespace paddleOCR
...
@@ -91,7 +95,7 @@ namespace paddleOCR
StringBuilder
sb
=
new
StringBuilder
(
1024
);
StringBuilder
sb
=
new
StringBuilder
(
1024
);
try
try
{
{
eyemOCRRecognizer
(
".\\config.txt"
,
imgPath
,
sb
);
eyemOCRRecognizer
(
imgPath
,
ref
sb
);
}
}
catch
(
Exception
ex
)
catch
(
Exception
ex
)
{
{
...
@@ -107,7 +111,10 @@ namespace paddleOCR
...
@@ -107,7 +111,10 @@ namespace paddleOCR
List
<
T
>
list
=
o
as
List
<
T
>;
List
<
T
>
list
=
o
as
List
<
T
>;
return
list
;
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
)]
[
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
);
}
}
}
}
paddleOCR/service/Service.cs
查看文件 @
bc632dd
...
@@ -17,23 +17,24 @@ namespace DeviceLibrary
...
@@ -17,23 +17,24 @@ namespace DeviceLibrary
{
{
Result
result
=
new
Result
();
Result
result
=
new
Result
();
DateTime
dateTime
=
DateTime
.
Now
;
DateTime
dateTime
=
DateTime
.
Now
;
if
(
string
.
IsNullOrEmpty
(
ver
))
//if (string.IsNullOrEmpty(ver))
{
//{
result
.
data
=
PaddleOCRHelper
.
StartCPlusOcr
(
imgPath
);
// result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
}
//}
else
if
(
ver
.
ToLower
().
Equals
(
"python"
))
//else
{
//if (ver.ToLower().Equals("python"))
//{
result
.
data
=
PaddleOCRHelper
.
StartPythonOcr
(
imgPath
);
result
.
data
=
PaddleOCRHelper
.
StartPythonOcr
(
imgPath
);
}
//
}
else
if
(
ver
.
ToLower
().
Equals
(
"cplus"
))
//
else if(ver.ToLower().Equals("cplus"))
{
//
{
result
.
data
=
PaddleOCRHelper
.
StartCPlusOcr
(
imgPath
);
//
result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
}
//
}
else
//
else
{
//
{
result
.
data
=
PaddleOCRHelper
.
StartCPlusOcr
(
imgPath
);
//
result.data = PaddleOCRHelper.StartCPlusOcr(imgPath);
}
//
}
result
.
ver
=
ver
;
result
.
ver
=
ver
;
result
.
msg
=
$
"Paddle Ocr elapsed:{(DateTime.Now-dateTime).TotalSeconds.ToString("
f2
")}s"
;
result
.
msg
=
$
"Paddle Ocr elapsed:{(DateTime.Now-dateTime).TotalSeconds.ToString("
f2
")}s"
;
return
result
;
return
result
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论