Mat型別at問題 opencv bug除錯

2021-09-25 10:02:25 字數 806 閱讀 7845

前言

除錯程式的過程中,opencv建立矩陣之後對其賦值出現錯誤:

mat m = mat::zeros(1, featurelen, cv_32fc1);

mat data = mat::zeros(testcount, featurelen, cv_32fc1);

//mat res = mat::zeros(testcount, 1, cv_32sc1);

mat res = mat::zeros(testcount, 1, cv_32sc1);

for (int i = 0; i< testcount; i++)

出現錯誤如下:

除錯bug之後,將

res.at(i, 0) = td.result;
更改為

res.at(i, 0) = td.result;
程式執行正確。

原因:

初始化矩陣dst時是定義的cv_32sc1,為signed int型,則以at方法訪問的時候應該用signed int型別訪問而不是unsigned int型別。

參考

1.2.

做自己該做的事情,做自己喜歡做的事情,安靜做一枚有思想的技術媛。

OpenCV中Mat 型別學習筆記

printf img.size 函式返回值 n cout 報錯 原因,mat.step1 0 需要用圓括弧 mat的step,size,step1,elemsize,elemsize1這幾個屬性非常容易混淆。opencv的官方參考手冊也沒有解釋清楚這幾個概念。step1 i 每一維元素的通道數 st...

opencv中Mat資料型別的應用

1.初始化 1 cv mat m 3,4,cv 32f,cv scalar 0 2 mat mat mat zeros color.rows,color.cols,cv 8uc3 ones 3 unsigned char data cv mat img height,width,cv 8uc3,un...

opencv建立Mat物件

在opencv中引入了mat類。mat類是乙個非常優秀的影象類,它同時也是乙個通用的矩陣類,可以用來建立和操作多維矩陣。mat類裡面定義了許多建構函式,可以很方便地根據要求建立mat物件。常使用的建構函式有 1 mat mat 無引數建構函式 2 mat mat int rows,int cols,...