我的问题令人惊讶。这是代码
#define NCHANNEL 3
#define NFRAME 100
Mat RR = Mat::zeros(NCHANNEL, NFRAME-1, CV_64FC1);
double *p_0 = RR.ptr<double>(0);
double *p_1 = RR.ptr<double>(1);
double *p_2 = RR.ptr<double>(2);
cout<< p_0[NFRAME-1] << endl << p_1[NFRAME-1] << endl << p_2[NFRAME-1] << endl;
输出为:0 0 -6.27744e + 066。
那可怕的数字来自哪里?我似乎在打印一个指针或内存粗糙的东西。
(呃,0是所有其他元素的值,当然)。
答案 0 :(得分:3)
您正在访问Mat的最后一个元素。如果使用NFRAME-1
进行初始化,则最后一个元素具有NFRAME-2
索引。