本文共 2069 字,大约阅读时间需要 6 分钟。
Point_
- typedef Point_<int> Point2i;
- typedef Point2i Point;
- typedef Point_<float> Point2f;
- typedef Point_<double> Point2d;
Point3_ - typedef Point3_<int> Point3i;
- typedef Point3_<float> Point3f;
- typedef Point3_<double> Point3d;
Size_ - typedef Size_<int> Size2i;
- typedef Size2i Size;
- typedef Size_<float> Size2f;
Rect_ Matx - typedef Matx<float,1,2> Matx12f;
- typedef Matx<double,1,2> Matx12d;
- ...
Vec - typedef Vec<uchar, 2> Vec2b;
- typedef Vec<short,3> Vec3s;
- typedef Vec<int, 4> Vec4i;
- typddef Vec<float,6> Vec6i;
- ...
Scalar_ - typedef Scalar_<double> Scalar;
Range - class Range
- {
- public:
- ...
- int start, end;
- };
ex:取A的全部行,和 1到179列 - Mat A = imread("b.jpg", CV_LOAD_IMAGE_COLOR);
- Mat B = A(Range::all(), Range(1, 180));
Mat
创建复杂的矩阵
-
- Mat M(7,7,CV_32FC2,Scalar(1,3));
-
-
- M.create(100,60,CV_8UC(15));
多维数组 -
- int sz[] = {100, 100, 100};
- Mat bigCube(3, sz, CV_8U, Scalar::all(0));
矩阵行操作 -
- M.row(3) = M.row(3) + M.row(5)*3;
矩阵列操作 -
-
- Mat M1 = M.col(1);
- M.col(7).copyTo(M1);
locateROI使用 - Mat A = Mat::eye(10, 10, CV_32S);
-
- Mat B = A(Range::all(), Range(1, 3));
-
-
- Mat C = B(Range(5, 9), Range::all());
- Size size; Point ofs;
- C.locateROI(size, ofs);
-
矩阵元素访问: 指针加[ ]
- int sum = 0;
- Mat M = Mat::eye(20, 20, CV_8UC1);
- for (int i=0; i < M.rows; i++)
- {
- const uchar* mi = M.ptr<uchar>(i);
- for (int j=0; j < M.cols; j++)
- {
- sum += mi[j];
- }
- }
迭代 - MatConstIterator_<uchar> it = M.begin<uchar>(), it_end = M.end<uchar>();
- for (; it != it_end; ++it)
- sum += *it;
转载地址:http://dvofb.baihongyu.com/