我想訪問來自轉換視頻幀爲灰度的openCV矩陣元素。我的代碼是這樣的:爲什麼我無法訪問openCV中的矩陣元素?
int C = 3;
cv::Mat grayPrevious;
cv::cvtColor (previousFrame, grayPrevious, CV_RGB2GRAY );
double* grayPtr = grayPrevious.ptr <double>();
double mean [600][800][3];
///... // set some values to mean here
for (int i = 0; i < 600; i ++)
{
for (int j = 0; j < 800; j ++)
{
for (int m = 0; m < C; m ++)
{
diff [i][j][m]= abs(grayPtr[ 800* (i-1)+j] - mean[i][j][m]);
}
}
}
但它在for循環崩潰。這與數據類型有關嗎?我該如何改變它?另外,我的第二個問題是,我嘗試使用「grayPrevious.at」在屏幕上查看grayPrevious矩陣的元素,但它顯示的值爲「double」的「-5.235125e + 30」或「 - 11242433「爲」int「。這也是困惑我,我期待看到0至255之間,並
我正在使用這種方式,因爲「grayPrevious.at」方法正在進行範圍檢查,並且對我來說耗時很長。 –
@ederman看到編輯了! – Sassa
謝謝你的回答。 –