(轉)Mat, vector<point2f>,Iplimage等等常見類型轉換
在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);
(轉)Mat, vector<point2f>,Iplimage等等常見類型轉換