Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在OpenCV中更改Mat对象中的数据,但也会影响另一个Mat对象中的数据 我在C++版本2.4.13中编写了OpenCV程序。我初始化了一个包含带零的Mat指针的向量vec。我更改了vec[0]的内容,发现vec[1]中的数据也受到影响,这意味着现在并非所有像素都是零。如果我更改vec[1]的数据,vec[0]中的数据也会受到影响。更改vec[0]将影响vec[1]中的前3行,而changin vec[1]将影响vec[0]中的最后3行。我想他们的记忆可能重叠了_C++_Opencv_Mat - Fatal编程技术网

在OpenCV中更改Mat对象中的数据,但也会影响另一个Mat对象中的数据 我在C++版本2.4.13中编写了OpenCV程序。我初始化了一个包含带零的Mat指针的向量vec。我更改了vec[0]的内容,发现vec[1]中的数据也受到影响,这意味着现在并非所有像素都是零。如果我更改vec[1]的数据,vec[0]中的数据也会受到影响。更改vec[0]将影响vec[1]中的前3行,而changin vec[1]将影响vec[0]中的最后3行。我想他们的记忆可能重叠了

在OpenCV中更改Mat对象中的数据,但也会影响另一个Mat对象中的数据 我在C++版本2.4.13中编写了OpenCV程序。我初始化了一个包含带零的Mat指针的向量vec。我更改了vec[0]的内容,发现vec[1]中的数据也受到影响,这意味着现在并非所有像素都是零。如果我更改vec[1]的数据,vec[0]中的数据也会受到影响。更改vec[0]将影响vec[1]中的前3行,而changin vec[1]将影响vec[0]中的最后3行。我想他们的记忆可能重叠了,c++,opencv,mat,C++,Opencv,Mat,这是我的代码: 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)); res

这是我的代码:

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";
        }
    }
}
矢量结果;
int row=响应映射[0]->行;
int col=响应映射[0]->cols;
对于(int i=0;i深度(),标量(0));
结果:推回(分类);
}
对于(int i=0;iat(i,j);
++计数;
}
}
bool done=false;
对于(int i=0;i原来的垫子可能是双重的吗?responseMap是CV_16UThen,你为什么用
at
而不是
at
?我明白了问题所在,谢谢。如果我想将CV_8U图像的像素值分配给CV_16U图像,我能做什么?第二个
for
循环似乎可以用替换。
count
将只是
行*col