Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
张士柳
/
eyemLib
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
图表
网络
创建新的问题
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 84029fbf
由
张士柳
编写于
2021-03-19 14:16:33 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
无
1 个父辈
19dd9381
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
112 行增加
和
52 行删除
eyemLib-Sharp/EyemLib.cs
eyemLib-Sharp/Program.cs
eyemLib/eyemLib.vcxproj
eyemLib/eyemMisc.cpp
eyemLib/eyemMisc.h
eyemLib-Sharp/EyemLib.cs
查看文件 @
84029fb
...
@@ -921,7 +921,7 @@ namespace eyemLib_Sharp
...
@@ -921,7 +921,7 @@ namespace eyemLib_Sharp
string
file
=
fileName
.
Split
(
new
string
[]
{
"\\"
},
StringSplitOptions
.
RemoveEmptyEntries
)[
2
];
string
file
=
fileName
.
Split
(
new
string
[]
{
"\\"
},
StringSplitOptions
.
RemoveEmptyEntries
)[
2
];
//获取用于制作模板的图像
//获取用于制作模板的图像
flag
=
eyemAchvTemplateImage
(
image
,
tpRoi
,
out
tpDstImg
);
//
flag = eyemAchvTemplateImage(image, tpRoi, out tpDstImg);
//Bitmap bmp = eyemCvtToBitmap(tpDstImg);
//Bitmap bmp = eyemCvtToBitmap(tpDstImg);
...
@@ -932,31 +932,32 @@ namespace eyemLib_Sharp
...
@@ -932,31 +932,32 @@ namespace eyemLib_Sharp
//创建模板匹配模型
//创建模板匹配模型
EyemRect
tpRoi2
=
new
EyemRect
();
EyemRect
tpRoi2
=
new
EyemRect
();
tpRoi2
.
iXs
=
1
112
;
tpRoi2
.
iYs
=
414
;
tpRoi2
.
iXs
=
1
026
;
tpRoi2
.
iYs
=
513
;
tpRoi2
.
iWidth
=
68
;
tpRoi2
.
iWidth
=
41
;
tpRoi2
.
iHeight
=
79
;
tpRoi2
.
iHeight
=
14
;
//
double matchDeg = 0.75;
double
matchDeg
=
0.75
;
//flag = eyemCreateTemplateModel(tpDstImg, tpRoi2, matchDeg, "D:
//模板文件//
" + file.Replace(".png", ".tpl"));
//flag = eyemCreateTemplateModel(tpDstImg, tpRoi2, matchDeg, "D:
\\模板文件\\
" + file.Replace(".png", ".tpl"));
string
selectModel
=
""
;
//
string selectModel = "";
flag
=
eyemMatchTemplateModel
(
tpDstImg
,
"D:\\模板文件"
,
ref
selectModel
);
//
flag = eyemMatchTemplateModel(tpDstImg, "D:\\模板文件", ref selectModel);
//最好释放掉
//最好释放掉
eyemImageFree
(
ref
tpDstImg
);
//
eyemImageFree(ref tpDstImg);
//"IP_SMALL_PARTS","IP_LARGE_PARTS","IP_LONG_PARTS",""
//"IP_SMALL_PARTS","IP_LARGE_PARTS","IP_LONG_PARTS",""
//eyemCountObject(image, tpRoi, file.Replace(".png", ""), 35, 0, 100, 5, ref pNumObj, out tpDstImg);
//eyemCountObject(image, tpRoi, file.Replace(".png", ""), 35, 0, 100, 5, ref pNumObj, out tpDstImg);
//eyemCountObjectIrregularParts(image, tpRoi, file.Replace(".png", ""), 0.1, "IP_LARGE_PARTS", 100, 7, ref pNumObj, out tpDstImg);
//eyemCountObjectIrregularParts(image, tpRoi, file.Replace(".png", ""), 0.1, "IP_LARGE_PARTS", 100, 7, ref pNumObj, out tpDstImg);
//eyemCountObjectE(image, tpRoi, fileName, ref pNumObj, out tpDstImg);
//eyemCountObjectE(image, tpRoi, fileName, ref pNumObj, out tpDstImg);
eyemCountObjectIrregularPartsE
(
image
,
tpRoi
,
file
.
Replace
(
".png"
,
""
),
selectModel
,
ref
pNumObj
,
out
tpDstImg
);
//eyemCountObjectIrregularPartsE(image, tpRoi, file.Replace(".png", ""), selectModel, ref pNumObj, out tpDstImg);
eyemCountObjectIrregularPartsE
(
image
,
tpRoi
,
file
.
Replace
(
".png"
,
""
),
"D:\\模板文件\\"
+
file
.
Replace
(
".png"
,
".tpl"
),
ref
pNumObj
,
out
tpDstImg
);
Bitmap
bitmap
=
eyemCvtToBitmap
(
tpDstImg
);
Bitmap
bitmap
=
eyemCvtToBitmap
(
tpDstImg
);
if
(
bitmap
!=
null
)
//
if (bitmap != null)
{
//
{
bitmap
.
Save
(
System
.
Windows
.
Forms
.
Application
.
StartupPath
+
"\\ResOut\\"
+
file
);
//
bitmap.Save(System.Windows.Forms.Application.StartupPath + "\\ResOut\\" + file);
}
//
}
////<解码测试
////<解码测试
//int ipNum; EyemBarCode* tpResults;
//int ipNum; EyemBarCode* tpResults;
...
@@ -1036,7 +1037,6 @@ namespace eyemLib_Sharp
...
@@ -1036,7 +1037,6 @@ namespace eyemLib_Sharp
hObject
.
Dispose
();
hObject
.
Dispose
();
}
}
//
public
static
void
toSingleFilter
(
int
[]
iArrRes
,
ref
int
[]
bitSingle
)
public
static
void
toSingleFilter
(
int
[]
iArrRes
,
ref
int
[]
bitSingle
)
{
{
for
(
int
i
=
0
;
i
<
iArrRes
.
Length
;
i
++)
for
(
int
i
=
0
;
i
<
iArrRes
.
Length
;
i
++)
...
...
eyemLib-Sharp/Program.cs
查看文件 @
84029fb
...
@@ -23,9 +23,12 @@ namespace eyemLib_Sharp
...
@@ -23,9 +23,12 @@ namespace eyemLib_Sharp
//}
//}
//EyemLib.eyemTest2(fileNames);
//EyemLib.eyemTest2(fileNames);
for
each
(
var
item
in
fileNames
)
for
(
int
i
=
0
;
i
<
10000
;
i
++
)
{
{
EyemLib
.
eyemReadImageTool
(
item
);
foreach
(
var
item
in
fileNames
)
{
EyemLib
.
eyemReadImageTool
(
item
);
}
}
}
...
...
eyemLib/eyemLib.vcxproj
查看文件 @
84029fb
...
@@ -74,16 +74,16 @@
...
@@ -74,16 +74,16 @@
</PropertyGroup>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<LinkIncremental>true</LinkIncremental>
<IncludePath>D:\opencv420\build\include;D:\opencv420\build\include\opencv2;D:\zxing-cpp-master\core\src;D:\zxing-cpp-master\opencv\src;$(IncludePath)</IncludePath>
<IncludePath>D:\opencv420\build\include;D:\opencv420\build\include\opencv2;D:\zxing-cpp-master\core\src;D:\zxing-cpp-master\opencv\src;
D:\tbb2017_20170604oss\include;
$(IncludePath)</IncludePath>
<LibraryPath>D:\opencv420\build\x64\vc14\lib;D:\zxing-cpp-master\build\Debug;$(LibraryPath)</LibraryPath>
<LibraryPath>D:\opencv420\build\x64\vc14\lib;D:\zxing-cpp-master\build\Debug;
D:\tbb2017_20170604oss\lib\intel64\vc14;
$(LibraryPath)</LibraryPath>
</PropertyGroup>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<LinkIncremental>false</LinkIncremental>
<IncludePath>D:\opencv420\build\include;D:\opencv420\build\include\opencv2;D:\zxing-cpp-master\core\src;D:\zxing-cpp-master\opencv\src;$(IncludePath)</IncludePath>
<IncludePath>D:\opencv420\build\include;D:\opencv420\build\include\opencv2;D:\zxing-cpp-master\core\src;D:\zxing-cpp-master\opencv\src;
D:\tbb2017_20170604oss\include;
$(IncludePath)</IncludePath>
<LibraryPath>D:\opencv420\build\x64\vc14\lib;D:\zxing-cpp-master\build\Release;$(LibraryPath)</LibraryPath>
<LibraryPath>D:\opencv420\build\x64\vc14\lib;D:\zxing-cpp-master\build\Release;
D:\tbb2017_20170604oss\lib\intel64\vc14;
$(LibraryPath)</LibraryPath>
</PropertyGroup>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<ClCompile>
...
...
eyemLib/eyemMisc.cpp
查看文件 @
84029fb
...
@@ -144,6 +144,12 @@ static cv::Mat getTrackMat(cv::Mat &trackMat, double t, int val, float *matx)
...
@@ -144,6 +144,12 @@ static cv::Mat getTrackMat(cv::Mat &trackMat, double t, int val, float *matx)
return
tplMatD
;
return
tplMatD
;
}
}
void
f
();
extern
void
bar
(
int
templateMatchMode
)
{
}
/** 模板追踪匹配
/** 模板追踪匹配
image 输入图像
image 输入图像
tplMat 输入模板
tplMat 输入模板
...
@@ -190,6 +196,16 @@ static bool findTrackModel(cv::Mat& image, cv::Mat &tplMat, double t, double tra
...
@@ -190,6 +196,16 @@ static bool findTrackModel(cv::Mat& image, cv::Mat &tplMat, double t, double tra
}
}
});
});
//tbb::parallel_for(tbb::blocked_range<int>(0, 2), [&](tbb::blocked_range<int>& range) {
// for (int m = range.begin(); m < range.end(); m++)
// {
// cv::Mat tplResult;
// cv::matchTemplate(trackMats[m], tplMats[m], tplResult, icvTemplateMatchModes[m]);
// tplResults[icvTemplateMatchModes[m]] = tplResult;
// }
//});
cv
::
Mat
tplResult0
=
tplResults
[
5
]
-
tplResults
[
1
];
cv
::
Mat
tplResult0
=
tplResults
[
5
]
-
tplResults
[
1
];
//计算极值坐标
//计算极值坐标
...
@@ -4055,6 +4071,8 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4055,6 +4071,8 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
if
(
src
.
empty
())
{
if
(
src
.
empty
())
{
return
FUNC_IMAGE_NOT_EXIST
;
return
FUNC_IMAGE_NOT_EXIST
;
}
}
double
begin0
=
(
double
)
cv
::
getTickCount
();
//转单通道图像
//转单通道图像
if
(
src
.
channels
()
!=
1
)
if
(
src
.
channels
()
!=
1
)
cv
::
cvtColor
(
src
,
src
,
cv
::
COLOR_BGR2GRAY
);
cv
::
cvtColor
(
src
,
src
,
cv
::
COLOR_BGR2GRAY
);
...
@@ -4112,21 +4130,13 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4112,21 +4130,13 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
cv
::
minMaxIdx
(
hist
,
NULL
,
NULL
,
NULL
,
maxIdx
);
cv
::
minMaxIdx
(
hist
,
NULL
,
NULL
,
NULL
,
maxIdx
);
//背景阈值
//背景阈值
int
backThresh
=
15
*
(
maxIdx
[
0
]
-
2
);
int
backThresh
=
15
*
(
maxIdx
[
0
]
-
2
);
//去掉背景
//去掉背景
cv
::
parallel_for_
(
cv
::
Range
(
0
,
Y
),
[
&
](
const
cv
::
Range
range
)
->
void
{
src8U
.
forEach
<
uint8_t
>
([
&
](
uint8_t
&
pixel
,
const
int
*
pos
)
->
void
{
for
(
int
y
=
range
.
start
;
y
<
range
.
end
;
y
++
)
pixel
=
pixel
>=
backThresh
?
backThresh
:
pixel
;
{
for
(
int
x
=
0
;
x
<
X
;
x
++
)
{
if
((
src8U
.
data
)[(
x
)
+
(
y
)
*
X
]
>=
backThresh
)
{
(
src8U
.
data
)[(
x
)
+
(
y
)
*
X
]
=
backThresh
;
}
}
}
});
});
//增强到目标亮度
//增强到目标亮度
,用于显示
cc
+=
cv
::
Scalar
((
162
-
backThresh
),
(
162
-
backThresh
),
(
162
-
backThresh
));
cc
+=
cv
::
Scalar
((
162
-
backThresh
),
(
162
-
backThresh
),
(
162
-
backThresh
));
//去掉干扰
//去掉干扰
...
@@ -4259,17 +4269,12 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4259,17 +4269,12 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
});
});
///<追踪元件算法
///<追踪元件算法
//标记初始区域
//计算初始起点
std
::
vector
<
cv
::
Point
>
matchPts
;
std
::
vector
<
cv
::
Point
>
matchPts
;
cv
::
findNonZero
(
matchParts
,
matchPts
);
cv
::
findNonZero
(
matchParts
,
matchPts
);
#ifdef _DEBUG
#ifdef _DEBUG
//计算元件间距(弦长)
/*
已知弦长L和半径R求角度2A:
sinA=(1/2)*L/R=L/(2R),2A=2asin(L/(2R)).
*/
for
(
std
::
vector
<
cv
::
Point
>::
iterator
itv
=
matchPts
.
begin
();
itv
!=
matchPts
.
end
();
++
itv
)
for
(
std
::
vector
<
cv
::
Point
>::
iterator
itv
=
matchPts
.
begin
();
itv
!=
matchPts
.
end
();
++
itv
)
{
{
cv
::
drawMarker
(
cc
,
cv
::
Point
((
*
itv
).
x
,
(
*
itv
).
y
),
cv
::
Scalar
(
0
,
255
,
0
,
255
));
cv
::
drawMarker
(
cc
,
cv
::
Point
((
*
itv
).
x
,
(
*
itv
).
y
),
cv
::
Scalar
(
0
,
255
,
0
,
255
));
...
@@ -4367,7 +4372,49 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4367,7 +4372,49 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
}
}
}
}
///<开始两个方向追踪流程
//std::cout << "除追踪之外耗时:" << 1000 * (static_cast<double>(cv::getTickCount()) - begin0) / cv::getTickFrequency() << std::endl;
//大于3个起点坐标排序
if
(
matchPts
.
size
()
>
3
)
{
std
::
vector
<
Track
>
tMatchPts
;
for
(
std
::
vector
<
cv
::
Point
>::
iterator
itv
=
matchPts
.
begin
();
itv
!=
matchPts
.
end
();
++
itv
)
{
cv
::
Point2f
startCenter
((
float
)(
*
itv
).
x
,
(
float
)(
*
itv
).
y
);
tMatchPts
.
push_back
(
Track
(
0
,
0
,
cv
::
norm
(
startCenter
-
reelCenter
),
cv
::
Point
(
startCenter
),
std
::
vector
<
cv
::
Point2f
>
()));
}
//按照距离排序
std
::
sort
(
tMatchPts
.
begin
(),
tMatchPts
.
end
(),
std
::
greater
<
Track
>
());
std
::
vector
<
cv
::
Point
>
sortedMatchPts
;
int
len
=
cvRound
((
double
)
tMatchPts
.
size
()
/
2.0
);
for
(
int
i
=
0
;
i
<
len
;
i
++
)
{
int
beforeidx
=
(
len
*
3
-
i
)
%
tMatchPts
.
size
();
int
afteridx
=
(
len
*
3
+
i
)
%
tMatchPts
.
size
();
if
(
beforeidx
==
afteridx
)
{
sortedMatchPts
.
push_back
(
tMatchPts
[
afteridx
].
Pos
);
}
else
{
sortedMatchPts
.
push_back
(
tMatchPts
[
afteridx
].
Pos
);
sortedMatchPts
.
push_back
(
tMatchPts
[
beforeidx
].
Pos
);
}
}
//偶数个
if
(
tMatchPts
.
size
()
%
2
==
0
)
{
sortedMatchPts
.
push_back
(
tMatchPts
[
0
].
Pos
);
}
//容器内容互换
sortedMatchPts
.
swap
(
matchPts
);
}
///<开始顺时针与逆时针两个方向追踪流程
for
(
std
::
vector
<
cv
::
Point
>::
iterator
itv
=
matchPts
.
begin
();
itv
!=
matchPts
.
end
();
++
itv
)
for
(
std
::
vector
<
cv
::
Point
>::
iterator
itv
=
matchPts
.
begin
();
itv
!=
matchPts
.
end
();
++
itv
)
{
{
//追踪起点
//追踪起点
...
@@ -4423,10 +4470,14 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4423,10 +4470,14 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
//偏移角度(元件尺寸)
//偏移角度(元件尺寸)
const
double
dOffset
=
(
2
*
asin
(
2
*
trackLength
/
(
2
*
startRadius
)))
*
180.
/
PI
;
const
double
dOffset
=
(
2
*
asin
(
2
*
trackLength
/
(
2
*
startRadius
)))
*
180.
/
PI
;
//并行处理
//考虑作并行处理
//#pragma omp parallel sections
tbb
::
parallel_invoke
(
[
&
]
{
{
//#pragma omp section //(顺时针)
std
::
cout
<<
tbb
::
this_tbb_thread
::
get_id
()
<<
std
::
endl
;
#pragma region //(顺时针)
{
{
//追踪中心
//追踪中心
cv
::
Point2f
trackCenter
=
cv
::
Point2f
(
startCenter
.
x
,
startCenter
.
y
);
cv
::
Point2f
trackCenter
=
cv
::
Point2f
(
startCenter
.
x
,
startCenter
.
y
);
...
@@ -4484,7 +4535,7 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4484,7 +4535,7 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
//更新扫描角度
//更新扫描角度
trackAngle
=
atan2
((
double
)
trackCenter
.
y
-
reelCenter
.
y
,
(
double
)
trackCenter
.
x
-
reelCenter
.
x
)
*
180
/
PI
;
trackAngle
=
atan2
((
double
)
trackCenter
.
y
-
reelCenter
.
y
,
(
double
)
trackCenter
.
x
-
reelCenter
.
x
)
*
180
/
PI
;
///<开始离心/向心扫描(横向由于
存在间隔
所以一般不会出现偏离的情况,除非料盘本身严重变形或者中心定位出问题)
///<开始离心/向心扫描(横向由于
间隔固定
所以一般不会出现偏离的情况,除非料盘本身严重变形或者中心定位出问题)
calcRotateRect
(
trackCenter
,
(
float
)
trackAngle
,
(
float
)
trackLength
,
(
float
)
trackWidth
,
pts
);
calcRotateRect
(
trackCenter
,
(
float
)
trackAngle
,
(
float
)
trackLength
,
(
float
)
trackWidth
,
pts
);
...
@@ -4586,8 +4637,15 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4586,8 +4637,15 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
trackEnd
=
(
!
found
);
trackEnd
=
(
!
found
);
}
while
(
!
trackEnd
);
}
while
(
!
trackEnd
);
}
}
#pragma endregion
},
[
&
]
{
std
::
cout
<<
tbb
::
this_tbb_thread
::
get_id
()
<<
std
::
endl
;
#pragma region //(逆时针)
//#pragma omp section //(逆时针)
{
{
//追踪起点
//追踪起点
cv
::
Point2f
trackCenter
(
startCenter
.
x
,
startCenter
.
y
);
cv
::
Point2f
trackCenter
(
startCenter
.
x
,
startCenter
.
y
);
...
@@ -4640,7 +4698,7 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4640,7 +4698,7 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
//更新扫描角度
//更新扫描角度
trackAngle
=
atan2
((
double
)
trackCenter
.
y
-
reelCenter
.
y
,
(
double
)
trackCenter
.
x
-
reelCenter
.
x
)
*
180
/
PI
;
trackAngle
=
atan2
((
double
)
trackCenter
.
y
-
reelCenter
.
y
,
(
double
)
trackCenter
.
x
-
reelCenter
.
x
)
*
180
/
PI
;
///<开始离心/向心扫描(横向由于
存在间隔
所以一般不会出现偏离的情况,除非料盘本身严重变形或者中心定位出问题)
///<开始离心/向心扫描(横向由于
间隔固定
所以一般不会出现偏离的情况,除非料盘本身严重变形或者中心定位出问题)
calcRotateRect
(
trackCenter
,
(
float
)
trackAngle
,
(
float
)
trackLength
,
(
float
)
trackWidth
,
pts
);
calcRotateRect
(
trackCenter
,
(
float
)
trackAngle
,
(
float
)
trackLength
,
(
float
)
trackWidth
,
pts
);
...
@@ -4742,7 +4800,9 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
...
@@ -4742,7 +4800,9 @@ int eyemCountObjectIrregularPartsE(EyemImage tpImage, EyemRect tpRoi, const char
trackEnd
=
(
!
found
);
trackEnd
=
(
!
found
);
}
while
(
!
trackEnd
);
}
while
(
!
trackEnd
);
}
}
}
#pragma endregion
});
}
}
//计数
//计数
...
@@ -5031,8 +5091,5 @@ int eyemAOIForTSAV(EyemImage tpRefImg, EyemImage tpNextImg, EyemRect3 *tpRois, i
...
@@ -5031,8 +5091,5 @@ int eyemAOIForTSAV(EyemImage tpRefImg, EyemImage tpNextImg, EyemRect3 *tpRois, i
cv
::
Mat
nextImg
(
tpNextImg
.
iHeight
,
tpNextImg
.
iWidth
,
cv
::
Mat
nextImg
(
tpNextImg
.
iHeight
,
tpNextImg
.
iWidth
,
MAKETYPE
(
tpNextImg
.
iDepth
,
tpNextImg
.
iChannels
),
tpNextImg
.
vpImage
);
MAKETYPE
(
tpNextImg
.
iDepth
,
tpNextImg
.
iChannels
),
tpNextImg
.
vpImage
);
return
FUNC_OK
;
return
FUNC_OK
;
}
}
\ No newline at end of file
\ No newline at end of file
eyemLib/eyemMisc.h
查看文件 @
84029fb
...
@@ -10,7 +10,7 @@
...
@@ -10,7 +10,7 @@
#include <direct.h>
#include <direct.h>
#include "eyemLib.h"
#include "eyemLib.h"
#include <
omp
.h>
#include <
tbb\tbb
.h>
constexpr
double
c
=
PI
/
180
.;
constexpr
double
c
=
PI
/
180
.;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论