我正在用C ++ 2.4.13版编写OpenCV程序。我启动了一个包含带零指针的矢量vec。我改变了vec [0]的内容,发现vec [1]中的数据也受到影响,这意味着现在并非所有像素都是零。如果我更改vec [1]的数据,vec [0]中的数据也会受到影响。更改vec [0]将影响vec [1]中的前3行,而changin vec [1]将影响vec [0]中的最后3行。我认为他们的记忆可能相互重叠。
这是我的代码:
vector<Mat> result;
int row = responseMaps[0] -> rows;
int col = responseMaps[0] -> cols;
for (int i = 0; i < responseMaps.size(); ++i) {
Mat classification = Mat(row, col, responseMaps[0] -> depth(), Scalar(0));
result.push_back(classification);
}
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
result[1].at<double>(i, j) = responseMaps[0] -> at<double>(i, j);
++count;
}
}
bool done = false;
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
if (!isZero(result[0].at<double>(i, j))) {
cout << result[0].at<double>(i, j) << "\n";
cout << i << " " << j << "\n";
}
}
}