OpenCv學習筆記(五)--建立Mat矩陣物件常用的幾種方式
阿新 • • 發佈:2019-01-22
/********************************************************************************************* 程式功能: 建立矩陣的幾種方法 編寫環境: OpenCv2.4.8+VS2010 地點時間: 陝西師範大學 2016.4.25 作者資訊: 九月 **********************************************************************************************/ /********************************【標頭檔案.名稱空間包含部分】***********************************/ #include<opencv2/core/core.hpp> //OpenCv的核心模組,包含OpenCv的基本資料機構和一些繪圖函式 #include<opencv2/highgui/highgui.hpp> //包含高層的圖形使用者介面,比如,namedWindow等函式 #include<iostream> using namespace cv; using namespace std; /*****************************************【main()函式】**************************************/ int main(int argc,char** argv) { //【1】使用Mat的建構函式---建立矩陣 //Mat(int rows, int cols, int type, const Scalar& s); Mat M(2,2,CV_8UC3,Scalar(0,0,255)); //指定矩陣的大小和型別,並用指定的資料進行填充 cout<<"M="<<endl<<" "<<M<<endl; //【2】為已經存在的IplImage指標建立資訊頭 //Mat(const IplImage* img, bool copyData=false); IplImage* img=cvLoadImage("D:\\scenery.png",CV_LOAD_IMAGE_COLOR); Mat mtx(img); //convert Iplimage*--->Mat imshow("【1】IplImage*載入的原始圖片",mtx); //【3】使用成員函式create()對Mat類物件進行初始化 //【3】該方法不能為矩陣設定初始值,只是在改變尺寸時為矩陣資料重新分配記憶體 M.create(4,4,CV_8UC2); //建立一個4行4列,2個通道的矩陣 cout<<"M="<<endl<<" "<<M<<endl<<endl; //【4】Matlab形式的初始化方式:zeros(),ones(),eyes()。使用以下方式指定尺寸和資料型別。 Mat E=Mat::eye(4,4,CV_8UC1); //4行4列的對角矩陣 cout<<"E="<<endl<<" "<<E<<endl<<endl; Mat Z=Mat::zeros(3,3,CV_8UC1); //3行3列的零矩陣 cout<<"Z="<<endl<<" "<<Z<<endl<<endl; Mat O=Mat::ones(3,3,CV_32F); cout<<"O="<<endl<<" "<<O<<endl<<endl; //3行3列的單位矩陣 waitKey(0); //system("pause"); }