关于opencv中Mat、 vector<Point2f>\ vector<Point3f>赋值的问题

在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

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值