Mat的初始化以及Mat与数组的相互转化
生活随笔
收集整理的這篇文章主要介紹了
Mat的初始化以及Mat与数组的相互转化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Mat類型數據的初始化方法可以有以下兩種:
1、直接初始化
Mat_<float> T_L = (Mat_<float>(3, 1) << -518.97666, 01.20629, 9.14632); 2、利用數組初始化 float A[4][3] = { 0 }; Mat A_mat = Mat(4, 3, CV_32F, A);//如果是double類型用64? 注意:初始化數組時常遇到“無法顯示標識符”的提示,可能用了中文的逗號;
Mat轉化為數組可以用以下兩種方法:1、Mat中提供ptr函數
? ? 用ptr訪問任意一行像素的首地址,然后當做指針來讀取這一行的數據,適合一行一行的橫向訪問
Mat M1; float* row1 = M1.ptr<float>(0);//獲取第一行首地址 float b[4] = { 0 }; for(int i=0;i<4;i++) {b[i]=row1[i];//第一行的第i個數賦給b[i] } 2、使用Mat的成員函數at<>()? ?直接給i,j賦值就可以隨意訪問圖像中任何一個像素,其中j表示第j行,i表示該行第i個像素。如果訪問所有的變量,效率很低。
M1.at<float>(2, 0)//第三行第一個元素的值? ?
總結
以上是生活随笔為你收集整理的Mat的初始化以及Mat与数组的相互转化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C error :Run-Time Ch
- 下一篇: opencv中的矩阵拼接