Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
77524834
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,发现更多精彩内容 >>
提交
77524834
编写于
9月 23, 2014
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #3252 from GravityJack:point-division
上级
281ce441
c8ede7c9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
101 addition
and
0 deletion
+101
-0
modules/core/doc/basic_structures.rst
modules/core/doc/basic_structures.rst
+2
-0
modules/core/include/opencv2/core/types.hpp
modules/core/include/opencv2/core/types.hpp
+99
-0
未找到文件。
modules/core/doc/basic_structures.rst
浏览文件 @
77524834
...
...
@@ -96,9 +96,11 @@ operation for each of the coordinates. Besides the class members listed in the d
pt1 = pt2 - pt3;
pt1 = pt2 * a;
pt1 = a * pt2;
pt1 = pt2 / a;
pt1 += pt2;
pt1 -= pt2;
pt1 *= a;
pt1 /= a;
double value = norm(pt); // L2 norm
pt1 == pt2;
pt1 != pt2;
...
...
modules/core/include/opencv2/core/types.hpp
浏览文件 @
77524834
...
...
@@ -994,6 +994,30 @@ Point_<_Tp>& operator *= (Point_<_Tp>& a, double b)
return
a
;
}
template
<
typename
_Tp
>
static
inline
Point_
<
_Tp
>&
operator
/=
(
Point_
<
_Tp
>&
a
,
int
b
)
{
a
.
x
=
saturate_cast
<
_Tp
>
(
a
.
x
/
b
);
a
.
y
=
saturate_cast
<
_Tp
>
(
a
.
y
/
b
);
return
a
;
}
template
<
typename
_Tp
>
static
inline
Point_
<
_Tp
>&
operator
/=
(
Point_
<
_Tp
>&
a
,
float
b
)
{
a
.
x
=
saturate_cast
<
_Tp
>
(
a
.
x
/
b
);
a
.
y
=
saturate_cast
<
_Tp
>
(
a
.
y
/
b
);
return
a
;
}
template
<
typename
_Tp
>
static
inline
Point_
<
_Tp
>&
operator
/=
(
Point_
<
_Tp
>&
a
,
double
b
)
{
a
.
x
=
saturate_cast
<
_Tp
>
(
a
.
x
/
b
);
a
.
y
=
saturate_cast
<
_Tp
>
(
a
.
y
/
b
);
return
a
;
}
template
<
typename
_Tp
>
static
inline
double
norm
(
const
Point_
<
_Tp
>&
pt
)
{
...
...
@@ -1080,6 +1104,30 @@ Point3_<_Tp> operator * (const Matx<_Tp, 3, 3>& a, const Point_<_Tp>& b)
return
Point3_
<
_Tp
>
(
tmp
.
val
[
0
],
tmp
.
val
[
1
],
tmp
.
val
[
2
]);
}
template
<
typename
_Tp
>
static
inline
Point_
<
_Tp
>
operator
/
(
const
Point_
<
_Tp
>&
a
,
int
b
)
{
Point_
<
_Tp
>
tmp
(
a
);
tmp
/=
b
;
return
tmp
;
}
template
<
typename
_Tp
>
static
inline
Point_
<
_Tp
>
operator
/
(
const
Point_
<
_Tp
>&
a
,
float
b
)
{
Point_
<
_Tp
>
tmp
(
a
);
tmp
/=
b
;
return
tmp
;
}
template
<
typename
_Tp
>
static
inline
Point_
<
_Tp
>
operator
/
(
const
Point_
<
_Tp
>&
a
,
double
b
)
{
Point_
<
_Tp
>
tmp
(
a
);
tmp
/=
b
;
return
tmp
;
}
//////////////////////////////// 3D Point ///////////////////////////////
...
...
@@ -1187,6 +1235,33 @@ Point3_<_Tp>& operator *= (Point3_<_Tp>& a, double b)
return
a
;
}
template
<
typename
_Tp
>
static
inline
Point3_
<
_Tp
>&
operator
/=
(
Point3_
<
_Tp
>&
a
,
int
b
)
{
a
.
x
=
saturate_cast
<
_Tp
>
(
a
.
x
/
b
);
a
.
y
=
saturate_cast
<
_Tp
>
(
a
.
y
/
b
);
a
.
z
=
saturate_cast
<
_Tp
>
(
a
.
z
/
b
);
return
a
;
}
template
<
typename
_Tp
>
static
inline
Point3_
<
_Tp
>&
operator
/=
(
Point3_
<
_Tp
>&
a
,
float
b
)
{
a
.
x
=
saturate_cast
<
_Tp
>
(
a
.
x
/
b
);
a
.
y
=
saturate_cast
<
_Tp
>
(
a
.
y
/
b
);
a
.
z
=
saturate_cast
<
_Tp
>
(
a
.
z
/
b
);
return
a
;
}
template
<
typename
_Tp
>
static
inline
Point3_
<
_Tp
>&
operator
/=
(
Point3_
<
_Tp
>&
a
,
double
b
)
{
a
.
x
=
saturate_cast
<
_Tp
>
(
a
.
x
/
b
);
a
.
y
=
saturate_cast
<
_Tp
>
(
a
.
y
/
b
);
a
.
z
=
saturate_cast
<
_Tp
>
(
a
.
z
/
b
);
return
a
;
}
template
<
typename
_Tp
>
static
inline
double
norm
(
const
Point3_
<
_Tp
>&
pt
)
{
...
...
@@ -1272,6 +1347,30 @@ Matx<_Tp, 4, 1> operator * (const Matx<_Tp, 4, 4>& a, const Point3_<_Tp>& b)
return
a
*
Matx
<
_Tp
,
4
,
1
>
(
b
.
x
,
b
.
y
,
b
.
z
,
1
);
}
template
<
typename
_Tp
>
static
inline
Point3_
<
_Tp
>
operator
/
(
const
Point3_
<
_Tp
>&
a
,
int
b
)
{
Point3_
<
_Tp
>
tmp
(
a
);
tmp
/=
b
;
return
tmp
;
}
template
<
typename
_Tp
>
static
inline
Point3_
<
_Tp
>
operator
/
(
const
Point3_
<
_Tp
>&
a
,
float
b
)
{
Point3_
<
_Tp
>
tmp
(
a
);
tmp
/=
b
;
return
tmp
;
}
template
<
typename
_Tp
>
static
inline
Point3_
<
_Tp
>
operator
/
(
const
Point3_
<
_Tp
>&
a
,
double
b
)
{
Point3_
<
_Tp
>
tmp
(
a
);
tmp
/=
b
;
return
tmp
;
}
////////////////////////////////// Size /////////////////////////////////
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录