opencv矩陣操作

創建與初始化矩陣

數據類型

建立矩陣必須要指定矩陣存儲的數據類型,包括數據位深度8位、32位,數據類型U:uchar、F:float型以及通道數C1:單通道、C3:三通道、C4:四通道

      CV_8UC1        // 8位無符號單通道  
      CV_8UC3            // 8位無符號3通道  
      CV_8UC4  
      CV_32FC1       // 32位浮點型單通道  
      CV_32FC3      // 32位浮點型3通道  
      CV_32FC4       //32位浮點型4通道
創建方法

我們可以通過載入圖像來創建Mat類型矩陣,也可以直接手動創建矩陣,基本方法是指定矩陣尺寸和數據類型:
     cv::Mat a(cv::Size(5,5),CV_8UC1); // 單通道  
    cv::Mat b = cv::Mat(cv::Size(5,5),CV_8UC3); //3通道每個矩陣元素包含3個uchar值

初始化方法

上述方法不初始化矩陣數據,因此將出現隨機值。如果想避免這種情況,可使用Mat類的幾種初始化創建矩陣的方法:


     cv::Mat skinCrCbHist =cv:: Mat::zeros(cv::Size(256, 256), CV_8UC1);           //手動創建一個256*256的矩陣
    cv::Mat output_mask = cv::Mat::zeros(input_image.size(), CV_8UC1);     //根據已有圖像input_image大小指定output_mask的大小

    cv::Mat mz = cv::Mat::zeros(cv::Size(5,5),CV_8UC1); // 全零矩陣  
    cv::Mat mo = cv::Mat::ones(cv::Size(5,5),CV_8UC1);  // 全1矩陣  
    cv::Mat me = cv::Mat::eye(cv::Size(5,5),CV_32FC1);  // 對角線爲1的對角矩陣  


發佈了31 篇原創文章 · 獲贊 14 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章