Mat类的一些用法
Mat类中eye,ones,zeros的用法
Mat A = Mat::eye(4, 4, CV_64F);
cout << "A = " << endl << " " << A << endl << endl;
Mat B = Mat::ones(2, 2, CV_32F);
cout << "B = " << endl << " " << B << endl << endl;
Mat C = Mat::zeros(3,3, CV_8UC1);
cout << "C = " << endl << " " << C << endl << endl;
对于小型的Mat矩阵的初始化:Mat C = (Mat_<double>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
这里选用double类型,还可以有其他的数据类型。Mat类中的push_back的用法
Mat combineMat;
vector<Mat> vMatSet( 10 );
for(int i = 0;i < 10;i++)
{
vMatSet[i] = imread("D://2.jpg");
}
for( int i = 0; i < 10; ++i )
{
combineMat.push_back( vMatSet[i] );
}
若2.jpg为n行*100列的图像,最后combineMat为10n行*100列的图像Mat类中的pob_back的用法
从矩阵底部移除相应的行,
combineMat.pop_back( 28);
表示移除矩阵combineMat底部的28行。
创建多维的矩阵
int sz[3] = {2,2,2};
Mat L(3,sz,CV_8UC(1),Scalar::all(0));//3表示创建矩阵的维度 sz表示每维度的信息
IplImage*-> Mat的转换
IplImage* img = cvLoadImage("greatwave.png", 1);
Mat mtx(img); // 转换 IplImage*-> Mat