Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
13bc55a0
O
Opencv
项目概览
Greenplum
/
Opencv
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
13bc55a0
编写于
12月 09, 2019
作者:
A
Alexander Alekhin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
calib3d: clarify error messages in collectCalibrationData()
上级
a011035e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
23 addition
and
19 deletion
+23
-19
modules/calib3d/src/calibration.cpp
modules/calib3d/src/calibration.cpp
+23
-19
未找到文件。
modules/calib3d/src/calibration.cpp
浏览文件 @
13bc55a0
...
...
@@ -3115,28 +3115,30 @@ static void collectCalibrationData( InputArrayOfArrays objectPoints,
Mat
&
npoints
)
{
int
nimages
=
(
int
)
objectPoints
.
total
();
int
i
,
j
=
0
,
ni
=
0
,
total
=
0
;
CV_Assert
(
nimages
>
0
&&
nimages
==
(
int
)
imagePoints1
.
total
()
&&
(
!
imgPtMat2
||
nimages
==
(
int
)
imagePoints2
.
total
()));
int
total
=
0
;
CV_Assert
(
nimages
>
0
);
CV_CheckEQ
(
nimages
,
(
int
)
imagePoints1
.
total
(),
""
);
if
(
imgPtMat2
)
CV_CheckEQ
(
nimages
,
(
int
)
imagePoints2
.
total
(),
""
);
for
(
i
=
0
;
i
<
nimages
;
i
++
)
for
(
int
i
=
0
;
i
<
nimages
;
i
++
)
{
Mat
objectPoint
=
objectPoints
.
getMat
(
i
);
if
(
objectPoint
.
empty
())
CV_Error
(
CV_StsBadSize
,
"objectPoints should not contain empty vector of vectors of points"
);
ni
=
objectPoint
.
checkVector
(
3
,
CV_32F
);
if
(
ni
<=
0
)
int
numberOfObjectPoints
=
objectPoint
.
checkVector
(
3
,
CV_32F
);
if
(
numberOfObjectPoints
<=
0
)
CV_Error
(
CV_StsUnsupportedFormat
,
"objectPoints should contain vector of vectors of points of type Point3f"
);
Mat
imagePoint1
=
imagePoints1
.
getMat
(
i
);
if
(
imagePoint1
.
empty
())
CV_Error
(
CV_StsBadSize
,
"imagePoints1 should not contain empty vector of vectors of points"
);
int
n
i1
=
imagePoint1
.
checkVector
(
2
,
CV_32F
);
if
(
ni1
<=
0
)
int
n
umberOfImagePoints
=
imagePoint1
.
checkVector
(
2
,
CV_32F
);
if
(
numberOfImagePoints
<=
0
)
CV_Error
(
CV_StsUnsupportedFormat
,
"imagePoints1 should contain vector of vectors of points of type Point2f"
);
CV_
Assert
(
ni
==
ni1
);
CV_
CheckEQ
(
numberOfObjectPoints
,
numberOfImagePoints
,
"Number of object and image points must be equal"
);
total
+=
n
i
;
total
+=
n
umberOfObjectPoints
;
}
npoints
.
create
(
1
,
(
int
)
nimages
,
CV_32S
);
...
...
@@ -3144,7 +3146,7 @@ static void collectCalibrationData( InputArrayOfArrays objectPoints,
imgPtMat1
.
create
(
1
,
(
int
)
total
,
CV_32FC2
);
Point2f
*
imgPtData2
=
0
;
if
(
imgPtMat2
)
if
(
imgPtMat2
)
{
imgPtMat2
->
create
(
1
,
(
int
)
total
,
CV_32FC2
);
imgPtData2
=
imgPtMat2
->
ptr
<
Point2f
>
();
...
...
@@ -3153,28 +3155,30 @@ static void collectCalibrationData( InputArrayOfArrays objectPoints,
Point3f
*
objPtData
=
objPtMat
.
ptr
<
Point3f
>
();
Point2f
*
imgPtData1
=
imgPtMat1
.
ptr
<
Point2f
>
();
for
(
i
=
0
;
i
<
nimages
;
i
++
,
j
+=
ni
)
for
(
int
i
=
0
,
j
=
0
;
i
<
nimages
;
i
++
)
{
Mat
objpt
=
objectPoints
.
getMat
(
i
);
Mat
imgpt1
=
imagePoints1
.
getMat
(
i
);
ni
=
objpt
.
checkVector
(
3
,
CV_32F
);
npoints
.
at
<
int
>
(
i
)
=
n
i
;
for
(
int
n
=
0
;
n
<
n
i
;
++
n
)
int
numberOfObjectPoints
=
objpt
.
checkVector
(
3
,
CV_32F
);
npoints
.
at
<
int
>
(
i
)
=
n
umberOfObjectPoints
;
for
(
int
n
=
0
;
n
<
n
umberOfObjectPoints
;
++
n
)
{
objPtData
[
j
+
n
]
=
objpt
.
ptr
<
Point3f
>
()[
n
];
imgPtData1
[
j
+
n
]
=
imgpt1
.
ptr
<
Point2f
>
()[
n
];
}
if
(
imgPtData2
)
if
(
imgPtData2
)
{
Mat
imgpt2
=
imagePoints2
.
getMat
(
i
);
int
n
i2
=
imgpt2
.
checkVector
(
2
,
CV_32F
);
CV_
Assert
(
ni
==
ni2
);
for
(
int
n
=
0
;
n
<
n
i2
;
++
n
)
int
n
umberOfImage2Points
=
imgpt2
.
checkVector
(
2
,
CV_32F
);
CV_
CheckEQ
(
numberOfObjectPoints
,
numberOfImage2Points
,
"Number of object and image(2) points must be equal"
);
for
(
int
n
=
0
;
n
<
n
umberOfImage2Points
;
++
n
)
{
imgPtData2
[
j
+
n
]
=
imgpt2
.
ptr
<
Point2f
>
()[
n
];
}
}
j
+=
numberOfObjectPoints
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录