Mat,Iplimage,vector,vector_vector_Point2f等类型之间的相互转换
在mfc c++ 以及opencv 编写程序当中,很多常用的类型转换,现在总结一下。(注意加相应的头文件,这里不罗嗦)
提纲:
1. Mat ---> Iplimage
2. Iplimage ---> CvvImage
3. Mat ---> vector<Point2f> or vector<Point3f>
4. vector<Point2f> or vector<Point3f> ---> vector<vector<Point2f>> or vector<vector<Point3f>>
5. vector<vector<Point2f>> or vector<vector<Point3f>> ---> Mat
6. vector<Point2f> or vector<Point3f> ---> Mat
图像类
1. Mat ---> Iplimage :直接赋值
- Mat img;
- Iplimage myImg = img;
2. Iplimage ---> CvvImage :用“Copyof ”
- CvvImage cImg;
- Iplimage myimg;
- cImg.Copyof(myimg, -1);
数据类
3. Mat ---> vector<Point2f> or vector<Point3f> :用“Mat_<Point2f>“ ,“Mat_<Point3f>”
- Mat m;
- vector<Point3f> p;
- p = Mat_<Point3f>(m);
4. vector<Point2f> or vector<Point3f> ---> vector<vector<Point2f>> or vector<vector<Point3f>> :用“pushback”
- vector<Point3f> p1,p2,p3;
- vector<vector<Point3f>> pp;
- pp.pushback(p1);
- pp.pushback(p2);
- pp.pushback(p3);
5. vector<vector<Point2f>> or vector<vector<Point3f>> ---> Mat
- vector<vector<Point3f>> p;
- Mat pm((int)p.size(), p[0].size(), CV_32FC3);
-
- for( int i = 0; i < (int)p.size(); i++ )
- {
- Mat r = pm.row(i).reshape(3, pm.cols);
- Mat pm1(p[i]);
- pm1.copyTo(r);
- }
6. vector<Point2f> or vector<Point3f> ---> Mat :用“Mat(Point3f)"
- vector<Point3f> p;
- Mat m = Mat(p);
[转](https://blog.csdn.net/foreverhehe716/article/details/6749175)
总结
以上是生活随笔为你收集整理的Mat,Iplimage,vector,vector_vector_Point2f等类型之间的相互转换的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: char和uchar区别
- 下一篇: 多维数组与指针之间的关系详解