Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张士柳
/
eyemLib
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
图表
网络
创建新的问题
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 7ca22226
由
张士柳
编写于
2021-04-02 16:28:36 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
更新日志记录接口
1 个父辈
53a9dc28
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
91 行增加
和
28 行删除
eyemLib-Sharp/EyemLib.cs
eyemLib-Sharp/Program.cs
eyemLib/eyemGeneric.h
eyemLib/eyemLib.cpp
eyemLib/eyemLib.h
eyemLib/eyemLib.rc
eyemLib/eyemMisc.cpp
eyemLib/eyemMisc.h
eyemLib-Sharp/EyemLib.cs
查看文件 @
7ca2222
...
...
@@ -12,6 +12,7 @@ namespace eyemLib_Sharp
{
public
unsafe
class
EyemLib
{
#
region
枚举
//稳健估计方法
...
...
@@ -648,6 +649,9 @@ namespace eyemLib_Sharp
//释放图像资源
[
DllImport
(
"eyemLib.dll"
,
CharSet
=
CharSet
.
None
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
private
static
extern
void
eyemImageFree
(
ref
EyemImage
tpImage
);
// 设定日志回调
[
DllImport
(
"eyemLib.dll"
,
CharSet
=
CharSet
.
None
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
private
static
extern
void
setLogCallback
(
TCallBack
cb
);
//测试用
[
DllImport
(
"eyemLib.dll"
,
CharSet
=
CharSet
.
None
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
...
...
@@ -778,6 +782,33 @@ namespace eyemLib_Sharp
private
static
extern
int
eyemAOIForTSAV
(
EyemImage
tpRefImg
,
EyemImage
tpNextImg
,
IntPtr
tpArray
,
int
iArraySize
);
#
endregion
// 日志回调
public
delegate
void
TCallBack
(
string
msg
);
public
static
TCallBack
sld
=
new
TCallBack
(
TLogCallback
);
public
static
event
TCallBack
OnNewLogCallback
;
public
static
void
TLogCallback
(
string
msg
)
{
OnNewLogCallback
?.
Invoke
(
msg
);
}
public
static
void
Init
()
{
setLogCallback
(
sld
);
OnNewLogCallback
+=
new
TCallBack
(
EyemLib_OnNewLogCallback
);
}
private
static
void
EyemLib_OnNewLogCallback
(
string
msg
)
{
Console
.
WriteLine
(
msg
);
}
public
static
void
Free
()
{
setLogCallback
(
null
);
sld
=
null
;
}
public
static
void
eyemReadImageTool
(
string
fileName
)
{
...
...
@@ -975,8 +1006,8 @@ namespace eyemLib_Sharp
tpRoi2
.
iWidth
=
28
;
tpRoi2
.
iHeight
=
9
;
double
matchDeg
=
0.80
;
flag
=
eyemCreateTemplateModel
(
tpDstImg
,
tpRoi2
,
matchDeg
,
"D:\\模板文件\\"
+
file
.
Replace
(
".png"
,
".tpl"
));
//
double matchDeg = 0.80;
//
flag = eyemCreateTemplateModel(tpDstImg, tpRoi2, matchDeg, "D:\\模板文件\\" + file.Replace(".png", ".tpl"));
//加载模板到内存
IntPtr
hModelID
=
IntPtr
.
Zero
;
...
...
eyemLib-Sharp/Program.cs
查看文件 @
7ca2222
...
...
@@ -10,11 +10,14 @@ namespace eyemLib_Sharp
{
static
void
Main
(
string
[]
args
)
{
//初始化
EyemLib
.
Init
();
string
[]
fileNames
=
Directory
.
GetFiles
(
@"D:\批量测试图像\", "
*.*
", SearchOption.AllDirectories);
//for (int j = 0; j < 250; j++)
//{
// ParallelOptions po = new ParallelOptions();
// po.MaxDegreeOfParallelism =
3
;
// po.MaxDegreeOfParallelism =
2
;
// Parallel.ForEach(fileNames, po, fn =>
// {
// EyemLib.eyemReadImageTool(fn);
...
...
@@ -23,16 +26,16 @@ namespace eyemLib_Sharp
//}
//EyemLib.eyemTest2(fileNames);
//foreach (var item in fileNames)
//{
// EyemLib.eyemReadImageTool(item);
//}
for
(
int
i
=
0
;
i
<
1
;
i
++)
foreach
(
var
item
in
fileNames
)
{
EyemLib
.
eyem
TestVideoCapture
(
"D:\\插件完成检测\\视频\\cap5.mp4"
);
EyemLib
.
eyem
ReadImageTool
(
item
);
}
//for (int i = 0; i < 1; i++)
//{
// EyemLib.eyemTestVideoCapture("D:\\插件完成检测\\视频\\cap5.mp4");
//}
//IntPtr hModelID;
//EyemLib.eyemInitModelE(out hModelID);
...
...
@@ -61,6 +64,8 @@ namespace eyemLib_Sharp
//EyemLib.eyemReleaseModelE(ref hModelID);
EyemLib
.
Free
();
Console
.
Write
(
"请按任意键继续。。。"
);
Console
.
ReadKey
();
}
...
...
eyemLib/eyemGeneric.h
查看文件 @
7ca2222
#pragma once
//
// eyem
Edge
ͷ
// eyem
Generic
ͷ
//
#ifndef __EYEM_GENERIC_H
#define __EYEM_GENERIC_H
...
...
eyemLib/eyemLib.cpp
查看文件 @
7ca2222
#include "eyemLib.h"
int
main
()
TCallback
g_logger_cb
=
NULL
;
void
Logger
::
t
(
const
std
::
string
&
msg
)
{
std
::
string
message
(
prefix_
);
message
+=
msg
;
if
(
g_logger_cb
)
g_logger_cb
(
message
.
c_str
());
}
// 趨־
void
setLogCallback
(
TCallback
cb
)
{
if
(
!
g_logger_cb
)
{
g_logger_cb
=
cb
;
}
}
void
main
()
{
char
*
filename
=
"D:
\\
Matlabͼ
\\
circle_plate_04.png"
;
cv
::
Mat
src
=
cv
::
imread
(
filename
,
cv
::
IMREAD_UNCHANGED
);
//EyemImage tpImage;
//tpImage.iHeight = src.rows;
//tpImage.iWidth = src.cols;
//tpImage.ucpImage = src.data;
//EyemRect tpRoi;
//tpRoi.iXs = 0;
//tpRoi.iYs = 0;
//tpRoi.iWidth = src.cols;
//tpRoi.iHeight = src.rows;
//int blobNum;
//IntPtr intptr;
//EyemBinBlob *blobs;
//eyemBinBlob(tpImage, tpRoi, 120, EYEM_BIN_WHITE, 1200, &intptr, &blobs, &blobNum);
////must be dispose
//eyemBinFree(intptr);
return
0
;
if
(
src
.
empty
())
{
return
;
}
return
;
}
\ No newline at end of file
eyemLib/eyemLib.h
查看文件 @
7ca2222
...
...
@@ -17,6 +17,7 @@
#define MAKETYPE CV_MAKETYPE
#endif
/********************************************************************************************/
/* 通用标头 */
/********************************************************************************************/
...
...
@@ -864,4 +865,20 @@ extern "C" {
#endif
// 日志回调定义
typedef
void
(
__stdcall
*
TCallback
)(
const
char
*
msg
);
class
Logger
{
public
:
Logger
(
const
std
::
string
prefix
=
""
)
:
prefix_
(
prefix
)
{}
public
:
void
t
(
const
std
::
string
&
msg
);
private
:
std
::
string
prefix_
;
};
extern
"C"
__declspec
(
dllexport
)
void
setLogCallback
(
TCallback
cb
);
#endif
/* __EYEM_LIB_H */
eyemLib/eyemLib.rc
查看文件 @
7ca2222
此文件类型无法预览
eyemLib/eyemMisc.cpp
查看文件 @
7ca2222
此文件的差异被折叠,
点击展开。
eyemLib/eyemMisc.h
查看文件 @
7ca2222
...
...
@@ -16,5 +16,7 @@ constexpr double c = PI / 180.;
std
::
mutex
mtx_misc
;
Logger
logger
;
#endif
/* __EYEM_MISC_H */
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论