Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
fbc44bcb
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,发现更多精彩内容 >>
提交
fbc44bcb
编写于
9月 22, 2016
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6845 from jbosch:master
上级
0330322d
5384a220
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
16 deletion
+23
-16
modules/calib3d/src/fisheye.cpp
modules/calib3d/src/fisheye.cpp
+23
-16
未找到文件。
modules/calib3d/src/fisheye.cpp
浏览文件 @
fbc44bcb
...
...
@@ -531,12 +531,16 @@ void cv::fisheye::estimateNewCameraMatrixForUndistortRectify(InputArray K, Input
int
w
=
image_size
.
width
,
h
=
image_size
.
height
;
balance
=
std
::
min
(
std
::
max
(
balance
,
0.0
),
1.0
);
cv
::
Mat
points
(
1
,
4
,
CV_64FC2
);
cv
::
Mat
points
(
1
,
8
,
CV_64FC2
);
Vec2d
*
pptr
=
points
.
ptr
<
Vec2d
>
();
pptr
[
0
]
=
Vec2d
(
w
/
2
,
0
);
pptr
[
1
]
=
Vec2d
(
w
,
h
/
2
);
pptr
[
2
]
=
Vec2d
(
w
/
2
,
h
);
pptr
[
3
]
=
Vec2d
(
0
,
h
/
2
);
pptr
[
0
]
=
Vec2d
(
0
,
0
);
pptr
[
1
]
=
Vec2d
(
w
/
2
,
0
);
pptr
[
2
]
=
Vec2d
(
w
,
0
);
pptr
[
3
]
=
Vec2d
(
w
,
h
/
2
);
pptr
[
4
]
=
Vec2d
(
w
,
h
);
pptr
[
5
]
=
Vec2d
(
w
/
2
,
h
);
pptr
[
6
]
=
Vec2d
(
0
,
h
);
pptr
[
7
]
=
Vec2d
(
0
,
h
/
2
);
#if 0
const int N = 10;
...
...
@@ -546,7 +550,6 @@ void cv::fisheye::estimateNewCameraMatrixForUndistortRectify(InputArray K, Input
{
pptr[k++] = Vec2d(w/2, 0) - Vec2d(w/8, 0) + Vec2d(w/4/N*i, 0);
pptr[k++] = Vec2d(w/2, h-1) - Vec2d(w/8, h-1) + Vec2d(w/4/N*i, h-1);
pptr[k++] = Vec2d(0, h/2) - Vec2d(0, h/8) + Vec2d(0, h/4/N*i);
pptr[k++] = Vec2d(w-1, h/2) - Vec2d(w-1, h/8) + Vec2d(w-1, h/4/N*i);
}
...
...
@@ -567,10 +570,14 @@ void cv::fisheye::estimateNewCameraMatrixForUndistortRectify(InputArray K, Input
double
minx
=
DBL_MAX
,
miny
=
DBL_MAX
,
maxx
=
-
DBL_MAX
,
maxy
=
-
DBL_MAX
;
for
(
size_t
i
=
0
;
i
<
points
.
total
();
++
i
)
{
miny
=
std
::
min
(
miny
,
pptr
[
i
][
1
]);
maxy
=
std
::
max
(
maxy
,
pptr
[
i
][
1
]);
minx
=
std
::
min
(
minx
,
pptr
[
i
][
0
]);
maxx
=
std
::
max
(
maxx
,
pptr
[
i
][
0
]);
if
(
i
!=
1
&&
i
!=
5
){
minx
=
std
::
min
(
minx
,
std
::
abs
(
pptr
[
i
][
0
]
-
cn
[
0
]));
}
if
(
i
!=
3
&&
i
!=
7
){
miny
=
std
::
min
(
miny
,
std
::
abs
(
pptr
[
i
][
1
]
-
cn
[
1
]));
}
maxy
=
std
::
max
(
maxy
,
std
::
abs
(
pptr
[
i
][
1
]
-
cn
[
1
]));
maxx
=
std
::
max
(
maxx
,
std
::
abs
(
pptr
[
i
][
0
]
-
cn
[
0
]));
}
#if 0
...
...
@@ -584,13 +591,13 @@ void cv::fisheye::estimateNewCameraMatrixForUndistortRectify(InputArray K, Input
}
#endif
double
f1
=
w
*
0.5
/
(
cn
[
0
]
-
minx
);
double
f2
=
w
*
0.5
/
(
maxx
-
cn
[
0
]
);
double
f3
=
h
*
0.5
*
aspect_ratio
/
(
cn
[
1
]
-
miny
);
double
f4
=
h
*
0.5
*
aspect_ratio
/
(
maxy
-
cn
[
1
]
);
double
f1
=
w
*
0.5
/
(
minx
);
double
f2
=
w
*
0.5
/
(
maxx
);
double
f3
=
h
*
0.5
*
aspect_ratio
/
(
miny
);
double
f4
=
h
*
0.5
*
aspect_ratio
/
(
maxy
);
double
fm
in
=
std
::
min
(
f1
,
std
::
min
(
f2
,
std
::
min
(
f3
,
f4
))
);
double
fm
ax
=
std
::
max
(
f1
,
std
::
max
(
f2
,
std
::
max
(
f3
,
f4
))
);
double
fm
ax
=
std
::
max
(
f1
,
f3
);
double
fm
in
=
std
::
min
(
f2
,
f4
);
double
f
=
balance
*
fmin
+
(
1.0
-
balance
)
*
fmax
;
f
*=
fov_scale
>
0
?
1.0
/
fov_scale
:
1.0
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录