在opencv中,最麻烦的问题就是电坐标的赋值,由于各种类型太多了
导致需要不停的转换,比如vector需要 vector类型之间的转换
这里需要注意的是
由于这个重要的符号,“=”等于号的重载
在Mat、 vector\ vector中相同类型之间的数据可以直接赋值
但是
对于Mat,=传递的是指针,所以需要使用.clone()进行浅拷贝
大家需要注意
Mat r_kejianguang2, t_kejianguang2,img_last, img_now;
vector<Point2f> points_last;
vector<Point3f> points3d_last,keypoints3d_last;
std::vector<KeyPoint> keypoints_last;
img_last = img_2.clone();
keypoints_last = keypoints_2;
keypoints3d_last = points_3d;
cout<<"初始化结束"<<endl;
cout<<"keypoints3d_last.size()"<<keypoints3d_last.size()<<endl;
cout<<"points_3d.size()"<<points_3d.size()<<endl;
cout<<"keypoints_1.size()"<<keypoints_1.size()<<endl;
cout<<"keypoints3d_last.size()"<<keypoints3d_last.size()<<endl;
keypoints3d_last.clear();
keypoints_last.clear();
cout<<"keypoints3d_last.size()"<<keypoints3d_last.size()<<endl;
cout<<"points_3d.size()"<<points_3d.size()<<endl;
cout<<"keypoints_1.size()"<<keypoints_1.size()<<endl;
cout<<"keypoints3d_last.size()"<<keypoints3d_last.size()<<endl;
结果是
初始化结束
keypoints3d_last.size()498
points_3d.size()498
keypoints_1.size()500
keypoints3d_last.size()498
keypoints3d_last.size()0
points_3d.size()498
keypoints_1.size()500
keypoints3d_last.size()0