OpenCV Mat物件建立及資料型別

2021-07-26 21:22:54 字數 1656 閱讀 2740

1.使用opencv的c++介面時不需要考慮記憶體釋放問題。

2.賦值運算子和拷貝建構函式只複製資訊頭。

3.使用函式clone()或者copyto()來複製一幅影象的矩陣。

1、建立mat物件

mat類提供了一系列建構函式,可以方便的根據需要建立mat物件。

使用其中乙個用來具體的說明:

mat::mat(int rows, int cols, int type)

//建立行數為rows,列數為cols,型別為type的影象

型別的表示格式如下:

cv_[位數][帶符號與否][型別字首]c[通道數]

比如cv_8uc3表示使用8位的unsigned char型,每個畫素由三個元素組成三通道。

其他的資料型別表示如下(type):

mat---------cv_8u

mat-----------cv_8s

nat---------cv_16s

mat--------cv_16u

mat-----------cv_32s

mat----------cv_32f

2、資料型別轉換converttooclmat::convertto(oclmat& m, int rtype, double alpha=1, double beta=0)

m:轉為目標資料型別的矩陣;

rtype: 指定目標資料型別,或者是depth(通道數),如果rtype:是負值,那麼目標矩陣的資料型別和源矩形的資料型別是一致的;

alpha:基於尺度的變化值;

beta:在尺度上的加和;

cv::mat mattemp = cv::mat::zeros(100,100,cv_32f); 

cv::mat mattemp2;

mattemp.convertto(mattemp2, cv_8u); //把矩陣mattemp轉為unsing char型別的矩陣

3、畫素值的讀寫下面程式介紹了兩種對畫素值的訪問方法,分別為指標訪問和動態位址訪問,第三種迭代器訪問,後續介紹。

上面兩個知識點的例項程式設計如下:

#include #include "opencv2/opencv.hpp"

using namespace std;

using namespace cv;

int main()

} //顯示結果

imshow("grayim",grayim);

imshow("colorim",colorim);

waitkey();

}

程式輸出結果如下:

初探opencv Mat物件相關操作

1.建構函式 拷貝方法 為畫素賦初值 include include include mat物件的相應操作 using namespace cv using namespace std intmain int argc,char argv mat dst 建構函式1 dst mat src.size...

建立物件及繼承

原型模式 使用建構函式的prototype屬性制定那些應該共享的屬性和方法。組合使用建構函式模式和原型模式 使用建構函式定義例項屬性,使用原型定義共享的屬性和方法。function person name,age,job person.prototype person1 new person aa ...

OpenCV mat資料型別及位數

float 4位元組 6 7位有效數字 3.4e 38 到 3.4e38 double 8位元組 15 16位有效數字 1.7e 308 到 1.7e308 在opencv裡面,許多資料結構為了達到記憶體使用的最優化,通常都會給它最小上限的空間來分配變數,有的資料結構也會因為影象檔案格式的關係而給予...