Assertion failed (ni > 0 && ni == ni1) in collectCalibrationData

被这个错误折腾两天

我使用的opencv 2.410

在 calibrateCamera 之前对前两个参数进行 assert 

	int nimages = (int)((cv::InputArrayOfArrays)objectPoints).total();
	int i, j = 0, ni = 0, total = 0;
	assert(nimages > 0 && nimages == (int)((cv::InputArrayOfArrays)imagePoints).total());

	for( i = 0; i < nimages; i++ )
	{
		ni = ((cv::InputArrayOfArrays)objectPoints).getMat(i).checkVector(3, CV_32F);
// 		if( ni <= 0 )
// 			CV_Error(CV_StsUnsupportedFormat, "objectPoints should contain vector of vectors of points of type Point3f");
		int ni1 = ((cv::InputArrayOfArrays)imagePoints).getMat(i).checkVector(2, CV_32F);
// 		if( ni1 <= 0 )
// 			CV_Error(CV_StsUnsupportedFormat, "imagePoints1 should contain vector of vectors of points of type Point2f");
		std::cout << ni << " " << ni1 << std::endl;
		//CV_Assert( ni == ni1 );

		total += ni;
	}
输出的 ni 和 ni1 的值明显对不上

所以才会出现这一错误 Assertion failed (ni > 0 && ni == ni1) in collectCalibrationData

跟到现在在checkVector这里 本应该返回某个 mat 的长度 却返回错误的值

需要继续看下 源码

 暂时先保存到这里


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值