在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.youkuaiyun.com/foreverhehe716/article/details/6749175