一、使用Mat()構造函數函數
定義一個二維多通道圖像3d
Mat M(2, 2, CV_8UC3, Scalar(0, 0, 255)); cout << "M = " << endl << " " << M << endl; /* *2行2列 * CV_8UC3 :使用8爲unsigned char型,每一個像素由3個元素組成 * Scalar:short類型向量: 使用指定的定製化來初始化矩陣 */
二、IpIImage* 轉換爲Mat對象code
IplImage *img = cvLoadImage("F:\\MyCode\\dcq.jpg", 1); Mat mtx = cvarrToMat(img, true); //轉換IplImage * --->Mat
三、用 Mat類的Create成員函數對象
Mat M; M.create(4, 4, CV_8UC(3)); cout << "M = " << endl << " " << M << endl;
注意:此函數不能爲矩陣設置初值,只是在改變尺寸時從新爲矩陣數據開闢內存而已blog
四、用Matlab式的初始化方式內存
Mat M = Mat::eye(4, 4, CV_64F); cout << "M = " << endl << " " << M << endl; Mat Z = Mat::zeros(3, 3, CV_64F); cout << "Z = " << endl << " " << Z << endl; Mat F = Mat::ones(2, 2, CV_64F); cout << "F = " << endl << " " << F << endl;
五、class
Mat M = (Mat_<double>(3, 3) << 0, 1, 2, 1, 2, 3, 2, 3, 4) ; cout << "M = " << endl << " " << M << endl;
六、爲一個已經存在的Mat對象建立一個新的信息頭構造函數
Mat M = (Mat_<double>(3, 3) << 0, 1, 2, 1, 2, 3, 2, 3, 4) ; cout << "M = " << endl << " " << M << endl << endl << endl; Mat RowClone = M.row(1).clone(); cout << "RowClone=" << endl << " " <<RowClone << endl;
--im