我們知道,OpenCV2的矩陣形式是Mat,那么Mat矩陣的初始化怎么自定義呢 ?由於比較簡單,文字部分我就不多加說明了,見代碼,有下面幾種:
1 /////////////////////////////////////////////////////////////////////////////////////////////// 2 //定義一個全0矩陣 3 Mat zeroMatrix(Size(6, 5), CV_8UC1, Scalar(0)); 4 cout << "zeroMatrix=\n " << zeroMatrix << endl; 5 6 uchar matrix[5][6] = { { 1, 0, 1, 1, 2, 0 }, { 0, 1, 0, 0, 1, 2 }, { 2, 1, 2, 2, 1, 2 }, { 2, 1, 2, 2, 1, 0 }, { 0, 0, 1, 1, 0, 2 } }; 7 8 Mat Matrix(Size(6, 5), CV_8UC1, matrix);//注意:opencv里的行列順序是和maltab相反的 9 //由於Mat矩陣默認的是uchar類型,所以前后一致,定義矩陣時也要定義uchar類型 10 //若將int double float 等類型 賦予Mat 那么Mat就要定義CV_32F等對應的類型 11 12 cout << "Matrix=\n " << Matrix << endl; 13 cout << "Matrix.rows= " << Matrix.rows << endl;//行數 14 cout << "Matrix.cols= " << Matrix.cols << endl;//列數 15 16 Mat d = (Mat_<double>(5, 6) << 1, 0, 1, 1, 2, 0, 0, 1, 0, 0, 1, 2 , 2, 1, 2, 2, 1, 2 , 2, 1, 2, 2, 1, 0 , 0, 0, 1, 1, 0, 2); 17 18 cout << "d=\n " << d << endl; 19 cout << "d.rows= " << d.rows << endl; 20 cout << "d.cols= " << d.cols << endl; 21 cout << "d.element= " << d.at<double>(0,0) << endl;//第一個元素值 22 //////////////////////////////////////////////////////////////////////////////////////////////////
結果如下:

