如果有人请告诉我这行C ++代码的含义是什么,我会感激不尽?
temp = ((uchar*) matimg.data + i)[j];
在这段代码中
int rows =(int) height;
int cols =(int) width;
Mat matimg(img);
vector<vector<double> > vec1(rows, vector<double>(cols));
int k =1;
for (int i=0; i < rows; i++) {
for (int j =0; j < cols; j++){
unsigned char temp;
temp = ((uchar*) matimg.data + i)[j];
vec1[i][j] = (double) temp;
}
}
P.S。我不会说C ++,我会说C#
答案 0 :(得分:3)
它将1D matimg.data
数组与多个matimg.step
间隔的2D矩阵重叠,然后在(j, k)
虚拟索引它。
答案 1 :(得分:0)
如果有帮助,您也可以将此表达式重写为
((uchar*) matimg.data)[ i * matimg.step + j * matimg.elemSize() + k ]
原始表述在数据访问方面的意图更清晰,但是这个表述可能更清楚地展示了你如何进行C#重写。