Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
be016a75
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
be016a75
编写于
10月 20, 2010
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
some fixes due to the changed policy in DataType & DataDepth handling
上级
7d0feef7
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
85 addition
and
57 deletion
+85
-57
modules/core/include/opencv2/core/core.hpp
modules/core/include/opencv2/core/core.hpp
+13
-7
modules/core/include/opencv2/core/mat.hpp
modules/core/include/opencv2/core/mat.hpp
+34
-12
modules/core/src/copy.cpp
modules/core/src/copy.cpp
+12
-12
modules/core/src/matrix.cpp
modules/core/src/matrix.cpp
+8
-8
modules/core/src/rand.cpp
modules/core/src/rand.cpp
+4
-4
modules/core/src/stat.cpp
modules/core/src/stat.cpp
+14
-14
未找到文件。
modules/core/include/opencv2/core/core.hpp
浏览文件 @
be016a75
...
...
@@ -384,7 +384,7 @@ public:
The class is specialized for each fundamental numerical data type supported by OpenCV.
It provides DataDepth<T>::value constant.
*/
template
<
typename
_Tp
>
class
CV_EXPORTS
DataDepth
{
public
:
enum
{
value
=
-
1
,
fmt
=
(
int
)
'\0'
};
};
template
<
typename
_Tp
>
class
CV_EXPORTS
DataDepth
{};
template
<
>
class
DataDepth
<
bool
>
{
public
:
enum
{
value
=
CV_8U
,
fmt
=
(
int
)
'u'
};
};
template
<
>
class
DataDepth
<
uchar
>
{
public
:
enum
{
value
=
CV_8U
,
fmt
=
(
int
)
'u'
};
};
...
...
@@ -393,6 +393,8 @@ template<> class DataDepth<char> { public: enum { value = CV_8S, fmt=(int)'c' };
template
<
>
class
DataDepth
<
ushort
>
{
public
:
enum
{
value
=
CV_16U
,
fmt
=
(
int
)
'w'
};
};
template
<
>
class
DataDepth
<
short
>
{
public
:
enum
{
value
=
CV_16S
,
fmt
=
(
int
)
's'
};
};
template
<
>
class
DataDepth
<
int
>
{
public
:
enum
{
value
=
CV_32S
,
fmt
=
(
int
)
'i'
};
};
// this is temporary solution to support 32-bit unsigned integers
template
<
>
class
DataDepth
<
unsigned
>
{
public
:
enum
{
value
=
CV_32S
,
fmt
=
(
int
)
'i'
};
};
template
<
>
class
DataDepth
<
float
>
{
public
:
enum
{
value
=
CV_32F
,
fmt
=
(
int
)
'f'
};
};
template
<
>
class
DataDepth
<
double
>
{
public
:
enum
{
value
=
CV_64F
,
fmt
=
(
int
)
'd'
};
};
template
<
typename
_Tp
>
class
DataDepth
<
_Tp
*>
{
public
:
enum
{
value
=
CV_USRTYPE1
,
fmt
=
(
int
)
'r'
};
};
...
...
@@ -969,6 +971,10 @@ public:
typedef
value_type
work_type
;
typedef
value_type
channel_type
;
typedef
value_type
vec_type
;
enum
{
depth
=
DataDepth
<
channel_type
>::
value
,
channels
=
1
,
fmt
=
DataDepth
<
channel_type
>::
fmt
,
type
=
CV_MAKETYPE
(
depth
,
channels
)
};
};
template
<
>
class
DataType
<
bool
>
...
...
@@ -2445,10 +2451,10 @@ public:
Mat_
(
const
Mat_
&
m
,
const
Range
*
ranges
);
//! makes a matrix out of Vec, std::vector, Point_ or Point3_. The matrix will have a single column
explicit
Mat_
(
const
vector
<
_Tp
>&
vec
,
bool
copyData
=
false
);
template
<
int
n
>
explicit
Mat_
(
const
Vec
<
_Tp
,
n
>&
vec
,
bool
copyData
=
true
);
template
<
int
m
,
int
n
>
explicit
Mat_
(
const
Matx
<
_Tp
,
m
,
n
>&
mtx
,
bool
copyData
=
true
);
explicit
Mat_
(
const
Point_
<
_Tp
>&
pt
,
bool
copyData
=
true
);
explicit
Mat_
(
const
Point3_
<
_Tp
>&
pt
,
bool
copyData
=
true
);
template
<
int
n
>
explicit
Mat_
(
const
Vec
<
typename
DataType
<
_Tp
>::
channel_type
,
n
>&
vec
,
bool
copyData
=
true
);
template
<
int
m
,
int
n
>
explicit
Mat_
(
const
Matx
<
typename
DataType
<
_Tp
>::
channel_type
,
m
,
n
>&
mtx
,
bool
copyData
=
true
);
explicit
Mat_
(
const
Point_
<
typename
DataType
<
_Tp
>::
channel_type
>&
pt
,
bool
copyData
=
true
);
explicit
Mat_
(
const
Point3_
<
typename
DataType
<
_Tp
>::
channel_type
>&
pt
,
bool
copyData
=
true
);
explicit
Mat_
(
const
MatCommaInitializer_
<
_Tp
>&
commaInitializer
);
Mat_
&
operator
=
(
const
Mat
&
m
);
...
...
@@ -2540,9 +2546,9 @@ public:
//! conversion to vector.
operator
vector
<
_Tp
>
()
const
;
//! conversion to Vec
template
<
int
n
>
operator
Vec
<
_Tp
,
n
>
()
const
;
template
<
int
n
>
operator
Vec
<
typename
DataType
<
_Tp
>::
channel_type
,
n
>
()
const
;
//! conversion to Matx
template
<
int
m
,
int
n
>
operator
Matx
<
_Tp
,
m
,
n
>
()
const
;
template
<
int
m
,
int
n
>
operator
Matx
<
typename
DataType
<
_Tp
>::
channel_type
,
m
,
n
>
()
const
;
};
typedef
Mat_
<
uchar
>
Mat1b
;
...
...
modules/core/include/opencv2/core/mat.hpp
浏览文件 @
be016a75
...
...
@@ -793,18 +793,38 @@ template<typename _Tp> inline Mat_<_Tp>::Mat_(const Mat_& m, const Rect& roi)
:
Mat
(
m
,
roi
)
{}
template
<
typename
_Tp
>
template
<
int
n
>
inline
Mat_
<
_Tp
>::
Mat_
(
const
Vec
<
_Tp
,
n
>&
vec
,
bool
copyData
)
:
Mat
(
vec
,
copyData
)
{}
Mat_
<
_Tp
>::
Mat_
(
const
Vec
<
typename
DataType
<
_Tp
>::
channel_type
,
n
>&
vec
,
bool
copyData
)
:
Mat
(
n
/
DataType
<
_Tp
>::
channels
,
1
,
DataType
<
_Tp
>::
type
,
&
vec
)
{
CV_Assert
(
n
%
DataType
<
_Tp
>::
channels
==
0
);
if
(
copyData
)
*
this
=
clone
();
}
template
<
typename
_Tp
>
template
<
int
m
,
int
n
>
inline
Mat_
<
_Tp
>::
Mat_
(
const
Matx
<
_Tp
,
m
,
n
>&
M
,
bool
copyData
)
:
Mat
(
M
,
copyData
)
{}
Mat_
<
_Tp
>::
Mat_
(
const
Matx
<
typename
DataType
<
_Tp
>::
channel_type
,
m
,
n
>&
M
,
bool
copyData
)
:
Mat
(
m
,
n
/
DataType
<
_Tp
>::
channels
,
DataType
<
_Tp
>::
type
,
&
M
)
{
CV_Assert
(
n
%
DataType
<
_Tp
>::
channels
==
0
);
if
(
copyData
)
*
this
=
clone
();
}
template
<
typename
_Tp
>
inline
Mat_
<
_Tp
>::
Mat_
(
const
Point_
<
_Tp
>&
pt
,
bool
copyData
)
:
Mat
(
pt
,
copyData
)
{}
template
<
typename
_Tp
>
inline
Mat_
<
_Tp
>::
Mat_
(
const
Point_
<
typename
DataType
<
_Tp
>::
channel_type
>&
pt
,
bool
copyData
)
:
Mat
(
2
/
DataType
<
_Tp
>::
channels
,
1
,
DataType
<
_Tp
>::
type
,
&
pt
)
{
CV_Assert
(
2
%
DataType
<
_Tp
>::
channels
==
0
);
if
(
copyData
)
*
this
=
clone
();
}
template
<
typename
_Tp
>
inline
Mat_
<
_Tp
>::
Mat_
(
const
Point3_
<
_Tp
>&
pt
,
bool
copyData
)
:
Mat
(
pt
,
copyData
)
{}
template
<
typename
_Tp
>
inline
Mat_
<
_Tp
>::
Mat_
(
const
Point3_
<
typename
DataType
<
_Tp
>::
channel_type
>&
pt
,
bool
copyData
)
:
Mat
(
3
/
DataType
<
_Tp
>::
channels
,
1
,
DataType
<
_Tp
>::
type
,
&
pt
)
{
CV_Assert
(
3
%
DataType
<
_Tp
>::
channels
==
0
);
if
(
copyData
)
*
this
=
clone
();
}
template
<
typename
_Tp
>
inline
Mat_
<
_Tp
>::
Mat_
(
const
MatCommaInitializer_
<
_Tp
>&
commaInitializer
)
:
Mat
(
commaInitializer
)
{}
...
...
@@ -994,14 +1014,16 @@ template<typename _Tp> inline Mat_<_Tp>::operator vector<_Tp>() const
return
this
->
Mat
::
operator
vector
<
_Tp
>
();
}
template
<
typename
_Tp
>
template
<
int
n
>
inline
Mat_
<
_Tp
>::
operator
Vec
<
_Tp
,
n
>
()
const
template
<
typename
_Tp
>
template
<
int
n
>
inline
Mat_
<
_Tp
>::
operator
Vec
<
typename
DataType
<
_Tp
>::
channel_type
,
n
>
()
const
{
return
this
->
Mat
::
operator
Vec
<
_Tp
,
n
>
();
CV_Assert
(
n
%
DataType
<
_Tp
>::
channels
==
0
);
return
this
->
Mat
::
operator
Vec
<
typename
DataType
<
_Tp
>::
channel_type
,
n
>
();
}
template
<
typename
_Tp
>
template
<
int
m
,
int
n
>
inline
Mat_
<
_Tp
>::
operator
Matx
<
_Tp
,
m
,
n
>
()
const
template
<
typename
_Tp
>
template
<
int
m
,
int
n
>
inline
Mat_
<
_Tp
>::
operator
Matx
<
typename
DataType
<
_Tp
>::
channel_type
,
m
,
n
>
()
const
{
return
this
->
Mat
::
operator
Matx
<
_Tp
,
m
,
n
>
();
CV_Assert
(
n
%
DataType
<
_Tp
>::
channels
==
0
);
return
this
->
Mat
::
operator
Matx
<
typename
DataType
<
_Tp
>::
channel_type
,
m
,
n
>
();
}
template
<
typename
T1
,
typename
T2
,
typename
Op
>
inline
void
...
...
modules/core/src/copy.cpp
浏览文件 @
be016a75
...
...
@@ -130,15 +130,15 @@ CopyMaskFunc g_copyMaskFuncTab[] =
0
,
copyMask_
<
Vec
<
ushort
,
3
>
>
,
// 6
0
,
copyMask_
<
int64
>
,
// 8
copyMask_
<
Vec
<
int
,
2
>
>
,
// 8
0
,
0
,
0
,
copyMask_
<
Vec
<
int
,
3
>
>
,
// 12
0
,
0
,
0
,
copyMask_
<
Vec
<
int
64
,
2
>
>
,
// 16
copyMask_
<
Vec
<
int
,
4
>
>
,
// 16
0
,
0
,
0
,
0
,
0
,
0
,
0
,
copyMask_
<
Vec
<
int
64
,
3
>
>
,
// 24
copyMask_
<
Vec
<
int
,
6
>
>
,
// 24
0
,
0
,
0
,
0
,
0
,
0
,
0
,
copyMask_
<
Vec
<
int
64
,
4
>
>
// 32
copyMask_
<
Vec
<
int
,
8
>
>
// 32
};
static
SetMaskFunc
setMaskFuncTab
[]
=
...
...
@@ -151,15 +151,15 @@ static SetMaskFunc setMaskFuncTab[] =
0
,
setMask_
<
Vec
<
ushort
,
3
>
>
,
// 6
0
,
setMask_
<
int64
>
,
// 8
setMask_
<
Vec
<
int
,
2
>
>
,
// 8
0
,
0
,
0
,
setMask_
<
Vec
<
int
,
3
>
>
,
// 12
0
,
0
,
0
,
setMask_
<
Vec
<
int
64
,
2
>
>
,
// 16
setMask_
<
Vec
<
int
,
4
>
>
,
// 16
0
,
0
,
0
,
0
,
0
,
0
,
0
,
setMask_
<
Vec
<
int
64
,
3
>
>
,
// 24
setMask_
<
Vec
<
int
,
6
>
>
,
// 24
0
,
0
,
0
,
0
,
0
,
0
,
0
,
setMask_
<
Vec
<
int
64
,
4
>
>
// 32
setMask_
<
Vec
<
int
,
8
>
>
// 32
};
...
...
@@ -424,15 +424,15 @@ void flip( const Mat& src, Mat& dst, int flip_mode )
0
,
flipHoriz_
<
Vec
<
ushort
,
3
>
>
,
// 6
0
,
flipHoriz_
<
int64
>
,
// 8
flipHoriz_
<
Vec
<
int
,
2
>
>
,
// 8
0
,
0
,
0
,
flipHoriz_
<
Vec
<
int
,
3
>
>
,
// 12
0
,
0
,
0
,
flipHoriz_
<
Vec
<
int
64
,
2
>
>
,
// 16
flipHoriz_
<
Vec
<
int
,
4
>
>
,
// 16
0
,
0
,
0
,
0
,
0
,
0
,
0
,
flipHoriz_
<
Vec
<
int
64
,
3
>
>
,
// 24
flipHoriz_
<
Vec
<
int
,
6
>
>
,
// 24
0
,
0
,
0
,
0
,
0
,
0
,
0
,
flipHoriz_
<
Vec
<
int
64
,
4
>
>
// 32
flipHoriz_
<
Vec
<
int
,
8
>
>
// 32
};
CV_Assert
(
src
.
dims
<=
2
);
...
...
modules/core/src/matrix.cpp
浏览文件 @
be016a75
...
...
@@ -859,15 +859,15 @@ void transpose( const Mat& src, Mat& dst )
0
,
transposeI_
<
Vec
<
ushort
,
3
>
>
,
// 6
0
,
transposeI_
<
int64
>
,
// 8
transposeI_
<
Vec
<
int
,
2
>
>
,
// 8
0
,
0
,
0
,
transposeI_
<
Vec
<
int
,
3
>
>
,
// 12
0
,
0
,
0
,
transposeI_
<
Vec
<
int
64
,
2
>
>
,
// 16
transposeI_
<
Vec
<
int
,
4
>
>
,
// 16
0
,
0
,
0
,
0
,
0
,
0
,
0
,
transposeI_
<
Vec
<
int
64
,
3
>
>
,
// 24
transposeI_
<
Vec
<
int
,
6
>
>
,
// 24
0
,
0
,
0
,
0
,
0
,
0
,
0
,
transposeI_
<
Vec
<
int
64
,
4
>
>
// 32
transposeI_
<
Vec
<
int
,
8
>
>
// 32
};
TransposeFunc
tab
[]
=
...
...
@@ -880,15 +880,15 @@ void transpose( const Mat& src, Mat& dst )
0
,
transpose_
<
Vec
<
ushort
,
3
>
>
,
// 6
0
,
transpose_
<
int64
>
,
// 8
transpose_
<
Vec
<
int
,
2
>
>
,
// 8
0
,
0
,
0
,
transpose_
<
Vec
<
int
,
3
>
>
,
// 12
0
,
0
,
0
,
transpose_
<
Vec
<
int
64
,
2
>
>
,
// 16
transpose_
<
Vec
<
int
,
4
>
>
,
// 16
0
,
0
,
0
,
0
,
0
,
0
,
0
,
transpose_
<
Vec
<
int
64
,
3
>
>
,
// 24
transpose_
<
Vec
<
int
,
6
>
>
,
// 24
0
,
0
,
0
,
0
,
0
,
0
,
0
,
transpose_
<
Vec
<
int
64
,
4
>
>
// 32
transpose_
<
Vec
<
int
,
8
>
>
// 32
};
size_t
esz
=
src
.
elemSize
();
...
...
modules/core/src/rand.cpp
浏览文件 @
be016a75
...
...
@@ -699,15 +699,15 @@ void randShuffle( Mat& dst, double iterFactor, RNG* _rng )
0
,
randShuffle_
<
Vec
<
ushort
,
3
>
>
,
// 6
0
,
randShuffle_
<
int64
>
,
// 8
randShuffle_
<
Vec
<
int
,
2
>
>
,
// 8
0
,
0
,
0
,
randShuffle_
<
Vec
<
int
,
3
>
>
,
// 12
0
,
0
,
0
,
randShuffle_
<
Vec
<
int
64
,
2
>
>
,
// 16
randShuffle_
<
Vec
<
int
,
4
>
>
,
// 16
0
,
0
,
0
,
0
,
0
,
0
,
0
,
randShuffle_
<
Vec
<
int
64
,
3
>
>
,
// 24
randShuffle_
<
Vec
<
int
,
6
>
>
,
// 24
0
,
0
,
0
,
0
,
0
,
0
,
0
,
randShuffle_
<
Vec
<
int
64
,
4
>
>
// 32
randShuffle_
<
Vec
<
int
,
8
>
>
// 32
};
RNG
&
rng
=
_rng
?
*
_rng
:
theRNG
();
...
...
modules/core/src/stat.cpp
浏览文件 @
be016a75
...
...
@@ -135,25 +135,25 @@ Scalar sum( const Mat& m )
sum_
<
float
,
double
>
,
sum_
<
double
,
double
>
,
0
,
sumBlock_
<
Vec
<
uchar
,
2
>
,
Vec
<
unsigned
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
24
>
,
sumBlock_
<
Vec
<
uchar
,
2
>
,
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
23
>
,
sumBlock_
<
Vec
<
schar
,
2
>
,
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
24
>
,
sumBlock_
<
Vec
<
ushort
,
2
>
,
Vec
<
unsigned
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
16
>
,
sumBlock_
<
Vec
<
ushort
,
2
>
,
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
15
>
,
sumBlock_
<
Vec
<
short
,
2
>
,
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
16
>
,
sum_
<
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
>
,
sum_
<
Vec
<
float
,
2
>
,
Vec
<
double
,
2
>
>
,
sum_
<
Vec
<
double
,
2
>
,
Vec
<
double
,
2
>
>
,
0
,
sumBlock_
<
Vec
<
uchar
,
3
>
,
Vec
<
unsigned
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
24
>
,
sumBlock_
<
Vec
<
uchar
,
3
>
,
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
23
>
,
sumBlock_
<
Vec
<
schar
,
3
>
,
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
24
>
,
sumBlock_
<
Vec
<
ushort
,
3
>
,
Vec
<
unsigned
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
16
>
,
sumBlock_
<
Vec
<
ushort
,
3
>
,
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
15
>
,
sumBlock_
<
Vec
<
short
,
3
>
,
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
16
>
,
sum_
<
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
>
,
sum_
<
Vec
<
float
,
3
>
,
Vec
<
double
,
3
>
>
,
sum_
<
Vec
<
double
,
3
>
,
Vec
<
double
,
3
>
>
,
0
,
sumBlock_
<
Vec
<
uchar
,
4
>
,
Vec
<
unsigned
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
24
>
,
sumBlock_
<
Vec
<
uchar
,
4
>
,
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
23
>
,
sumBlock_
<
Vec
<
schar
,
4
>
,
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
24
>
,
sumBlock_
<
Vec
<
ushort
,
4
>
,
Vec
<
unsigned
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
16
>
,
sumBlock_
<
Vec
<
ushort
,
4
>
,
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
15
>
,
sumBlock_
<
Vec
<
short
,
4
>
,
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
16
>
,
sum_
<
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
>
,
sum_
<
Vec
<
float
,
4
>
,
Vec
<
double
,
4
>
>
,
...
...
@@ -304,29 +304,29 @@ Scalar mean( const Mat& m, const Mat& mask )
{
static
MeanMaskFunc
tab
[]
=
{
meanBlock_
<
uchar
,
unsigned
,
double
,
1
<<
24
>
,
0
,
meanBlock_
<
ushort
,
unsigned
,
double
,
1
<<
16
>
,
meanBlock_
<
uchar
,
int
,
double
,
1
<<
23
>
,
0
,
meanBlock_
<
ushort
,
int
,
double
,
1
<<
15
>
,
meanBlock_
<
short
,
int
,
double
,
1
<<
16
>
,
mean_
<
int
,
double
>
,
mean_
<
float
,
double
>
,
mean_
<
double
,
double
>
,
0
,
meanBlock_
<
Vec
<
uchar
,
2
>
,
Vec
<
unsigned
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
24
>
,
0
,
meanBlock_
<
Vec
<
ushort
,
2
>
,
Vec
<
unsigned
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
16
>
,
meanBlock_
<
Vec
<
uchar
,
2
>
,
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
23
>
,
0
,
meanBlock_
<
Vec
<
ushort
,
2
>
,
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
15
>
,
meanBlock_
<
Vec
<
short
,
2
>
,
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
,
1
<<
16
>
,
mean_
<
Vec
<
int
,
2
>
,
Vec
<
double
,
2
>
>
,
mean_
<
Vec
<
float
,
2
>
,
Vec
<
double
,
2
>
>
,
mean_
<
Vec
<
double
,
2
>
,
Vec
<
double
,
2
>
>
,
0
,
meanBlock_
<
Vec
<
uchar
,
3
>
,
Vec
<
unsigned
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
24
>
,
0
,
meanBlock_
<
Vec
<
ushort
,
3
>
,
Vec
<
unsigned
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
16
>
,
meanBlock_
<
Vec
<
uchar
,
3
>
,
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
23
>
,
0
,
meanBlock_
<
Vec
<
ushort
,
3
>
,
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
15
>
,
meanBlock_
<
Vec
<
short
,
3
>
,
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
,
1
<<
16
>
,
mean_
<
Vec
<
int
,
3
>
,
Vec
<
double
,
3
>
>
,
mean_
<
Vec
<
float
,
3
>
,
Vec
<
double
,
3
>
>
,
mean_
<
Vec
<
double
,
3
>
,
Vec
<
double
,
3
>
>
,
0
,
meanBlock_
<
Vec
<
uchar
,
4
>
,
Vec
<
unsigned
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
24
>
,
0
,
meanBlock_
<
Vec
<
ushort
,
4
>
,
Vec
<
unsigned
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
16
>
,
meanBlock_
<
Vec
<
uchar
,
4
>
,
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
23
>
,
0
,
meanBlock_
<
Vec
<
ushort
,
4
>
,
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
15
>
,
meanBlock_
<
Vec
<
short
,
4
>
,
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
,
1
<<
16
>
,
mean_
<
Vec
<
int
,
4
>
,
Vec
<
double
,
4
>
>
,
mean_
<
Vec
<
float
,
4
>
,
Vec
<
double
,
4
>
>
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录