Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
刘韬
/
CarerayImage
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 856532b0
由
刘韬
编写于
2022-05-20 11:41:32 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
添加多盘算法点料接口
1 个父辈
8fc867c8
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
74 行增加
和
1 行删除
CarerayImage/XrayImage.cs
CarerayImage/eyemLib.cs
CarerayImage/XrayImage.cs
查看文件 @
856532b
using
Asa.HaoboSDK
;
using
System
;
using
System.Collections.Generic
;
using
System.Diagnostics
;
using
System.Drawing
;
using
System.IO
;
using
System.Linq
;
using
System.Runtime.ExceptionServices
;
using
System.Runtime.InteropServices
;
using
System.Threading
;
...
...
@@ -27,6 +29,24 @@ namespace Asa
Directory
.
CreateDirectory
(
"CountTemplate"
);
var
flag
=
eyemInitModel
(
"CountTemplate"
,
out
hModelIDs
);
AlgoIndex
.
Add
(
"NONE"
,
-
1
);
for
(
int
i
=
0
;
i
<
sOptions
.
Length
;
i
++)
{
AlgoIndex
.
Add
(
sOptions
[
i
],
i
);
}
}
/// <summary>
/// 算法名称对索引应序号
/// </summary>
public
static
Dictionary
<
string
,
int
>
AlgoIndex
=
new
Dictionary
<
string
,
int
>();
static
string
[]
sOptions
=
{
"IP_DEFAULT_PARTS"
,
"IP_SMALL_PARTS"
,
"IP_LARGE_PARTS"
,
"IP_LONG_PARTS"
,
"IP_SQUARE_PARTS"
,
""
,
"IP_DYNAMIC_SP1"
,
"IP_DYNAMIC_SP2"
};
/// <summary>
/// 返回算法索引序列
/// </summary>
public
static
int
[]
GetAlgoIndex
(
string
[]
types
)
{
var
xx
=
from
type
in
types
select
AlgoIndex
[
type
];
return
xx
.
ToArray
();
}
/// <summary>
/// 16位窗位
...
...
@@ -237,6 +257,52 @@ namespace Asa
eyemImageFree
(
ref
tpDstImg
);
return
n
;
}
/// <summary>
/// 4盘算法点料
/// </summary>
[
HandleProcessCorruptedStateExceptions
]
public
static
int
GetCountObjectIrregularPartsMultiopt
(
string
path
,
int
ShrinkOffset
,
string
[]
type
,
out
int
[]
count
,
out
Bitmap
BmpDstImg
)
{
count
=
null
;
BmpDstImg
=
null
;
//string fileName = Path.GetFileNameWithoutExtension(path);
int
flag
=
eyemImageRead
(
path
,
-
1
,
out
EyemImage
eyem
);
if
(
flag
!=
0
)
return
-
1
;
int
n
=
GetCountObjectIrregularPartsMultiopt
(
eyem
,
ShrinkOffset
,
type
,
out
count
,
out
BmpDstImg
);
eyemImageFree
(
ref
eyem
);
return
n
;
}
/// <summary>
/// 4盘算法点料
/// </summary>
[
HandleProcessCorruptedStateExceptions
]
public
static
int
GetCountObjectIrregularPartsMultiopt
(
EyemImage
eyem
,
int
ShrinkOffset
,
string
[]
type
,
out
int
[]
count
,
out
Bitmap
BmpDstImg
)
{
BmpDstImg
=
null
;
EyemRect
tpRoi
=
new
EyemRect
{
iXs
=
0
+
ShrinkOffset
,
iYs
=
0
+
ShrinkOffset
,
iWidth
=
eyem
.
iWidth
-
ShrinkOffset
*
2
,
iHeight
=
eyem
.
iHeight
-
ShrinkOffset
*
2
};
setSkipProcessID
(-
1
);
int
[]
ipReelNum
=
new
int
[
4
];
int
n
=
eyemCountObjectIrregularPartsMultiopt
(
eyem
,
tpRoi
,
GetAlgoIndex
(
type
),
ipReelNum
,
out
EyemImage
tpDstImg
);
count
=
ipReelNum
;
if
(
n
==
0
)
BmpDstImg
=
eyemCvtToBitmap
(
tpDstImg
);
eyemImageFree
(
ref
tpDstImg
);
return
n
;
}
[
HandleProcessCorruptedStateExceptions
]
public
static
int
GetLocalCountTemplate
(
string
path
,
int
ShrinkOffset
,
string
template
,
out
int
[]
count
,
out
Bitmap
BmpDstImg
)
...
...
CarerayImage/eyemLib.cs
查看文件 @
856532b
...
...
@@ -42,6 +42,9 @@ namespace Asa
public
static
extern
int
eyemCountObjectIrregularPartsE
(
EyemImage
tpImage
,
EyemRect
tpRoi
,
string
fileName
,
string
ccTplName
,
IntPtr
hModelID
,
[
MarshalAs
(
UnmanagedType
.
LPArray
)]
int
[]
ipReelNum
,
out
EyemImage
tpDstImg
);
//多选项异形件
[
DllImport
(
"eyemLib.dll"
,
CharSet
=
CharSet
.
None
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
public
static
extern
int
eyemCountObjectIrregularPartsMultiopt
(
EyemImage
tpImage
,
EyemRect
tpRoi
,
int
[]
iOptions
,
[
MarshalAs
(
UnmanagedType
.
LPArray
)]
int
[]
ipReelNum
,
out
EyemImage
tpDstImg
);
//[DllImport("eyemLib.dll", CharSet = CharSet.None, CallingConvention = CallingConvention.Cdecl)]
//internal static extern int eyemCountObject(EyemImage tpSrcImg, EyemRect tpRoi, string fileName, double dOffset, int iMinArea, int iMaxArea, int iWinSize, ref string pNumObj, out EyemImage tpDstImg);
...
...
@@ -84,7 +87,11 @@ namespace Asa
//通过名称移除模板
[
DllImport
(
"eyemLib.dll"
,
CharSet
=
CharSet
.
None
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
internal
static
extern
int
eyemRemoveModelByName
(
IntPtr
hModelID
,
string
ccTplName
);
//跳过程序执行
/// <summary>
/// 结束之前的算法计算
/// </summary>
/// <param name="pid">-1复位, 0结束</param>
/// <returns></returns>
[
DllImport
(
"eyemLib.dll"
,
CharSet
=
CharSet
.
None
,
CallingConvention
=
CallingConvention
.
Cdecl
)]
internal
static
extern
int
setSkipProcessID
(
int
pid
);
// 设定日志回调
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论