Opencv Mat操作大全

  1. #include<opencv2/opencv.hpp>  
  2. #include<iostream>  
  3. using namespace std;  
  4. using namespace cv;  
  5. int main()  
  6. {  
  7.     float array[]={1,2,3};  
  8.     float array1[]={2,3,1};  
  9.     //用數組初始化Mat  
  10.     Mat mat=Mat(1,3,CV_32F,array);  
  11.     Mat mat1=Mat(1,3,CV_32F,array1);  
  12.     Mat tempmat;  
  13.     //對mat拷貝  
  14.     mat.copyTo(tempmat);  
  15.     cout<<tempmat<<endl;  
  16.     //選擇roi,rect的四個參數分別是(x,y)座標,第三個參數是寬度,第四個參數是高度  
  17.     Mat roi(mat,Rect(0,0,2,1));  
  18.     cout<<roi<<endl;  
  19.     //mat-mat1的1範數  
  20.     cout<<norm(mat,mat1,CV_L1)<<endl;  
  21.     //mat-mat1的2範數  
  22.     cout<<norm(mat,mat1,CV_L2)<<endl;  
  23.     //打印mat的內容  
  24.     cout<<mat<<endl;  
  25.     //創建對角爲1的矩陣  
  26.     Mat eyemat=Mat::eye(4,4,CV_8U);  
  27.     cout<<eyemat<<endl;  
  28.     //提取eyemat的1-2行,3-4列  
  29.     Mat submat=eyemat(Range(0,2),Range(2,4));  
  30.     cout<<submat<<endl;  
  31.     //abs(),max(),min(),+,-,*,/等操作很簡單,就不寫了  
  32.     float a[2][2]={2,3,1,2};  
  33.     float b[2][2]={2,1,0,-1};  
  34.     Mat amat(2,2,CV_32F,a);  
  35.     Mat bmat(2,2,CV_32F,b);  
  36.     cout<<amat<<endl;  
  37.     cout<<bmat<<endl;  
  38.     //求amat的逆  
  39.     cout<<amat.inv()<<endl;  
  40.     //兩矩陣相乘  
  41.     cout<<amat.mul(bmat)<<endl;  
  42.     //生成一個值爲0的矩陣  
  43.     cout<<Mat::zeros(3,3,CV_32F)<<endl;  
  44.     //生成一個值爲1的矩陣  
  45.     cout<<Mat::ones(3,3,CV_32F)<<endl;  
  46.     system("pause");  
  47. }  



  1. #include<opencv2/opencv.hpp>  
  2. #include<assert.h>  
  3. using namespace cv;  
  4. int main()  
  5. {  
  6.     Mat srcImage=imread("f:/huangshan.jpg");  
  7.     Mat dstImage=imread("f:/Lena.jpg");  
  8.     assert(srcImage.data!=NULL && dstImage.data!=NULL);   
  9.   
  10.     Mat roi=srcImage(Rect(0,0,dstImage.cols,dstImage.rows)); //獲取感興趣區域  
  11.     Mat mask = imread("f:/Lena.jpg",0);  
  12.     namedWindow("image",WINDOW_AUTOSIZE);  
  13.     roi=roi.t(); //mat轉置  
  14.     flip(roi,roi,0); //0爲上下翻轉,>0爲左右翻轉,<0同時上下左右翻轉  
  15.     //將掩膜拷貝到ROI中  
  16.     //dstImage.copyTo(roi,mask);  
  17.     addWeighted(roi,0.7,dstImage,0.3,0.,roi);  
  18.   
  19.       
  20.     //Mat mask = imread("f:/huangshan.jpg",0);  
  21.     //img.copyTo(roi,mask);  
  22.     imshow("image",srcImage);  
  23.     waitKey();  
  24.     return 0;  
  25. }  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章