OpenCV2的Mat矩陣形式自定義初始化


我們知道,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     //////////////////////////////////////////////////////////////////////////////////////////////////

結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM