c++ - OpenCV:我是否超出了矩阵大小?

标签 c++ opencv for-loop matrix size

我有以下代码:

cv::Mat data ( HEIGHT,WIDTH, CV_32SC1 );
cv::Mat means = cv::Mat::zeros (HEIGHT, WIDTH, CV_64FC1 );
int *dPtr = new int [HEIGHT*WIDTH];
dPtr =  data.ptr<int>();
double *mPtr = new double [HEIGHT*WIDTH];
mPtr =  means.ptr < double>();

for ( int i = 0; i < N; i ++)
{
    for ( int j = 0; j < M; j ++ ) 
    {
         mPtr[ WIDTH * (i-1) + j ] += dPtr[ WIDTH * (i-1) + j ];
    }
}

但程序在 for 循环内崩溃,我怀疑我是否超出了矩阵大小。但我想不通。有人可以帮我吗?先感谢您。

最佳答案

由于您的索引 i,j 以 0 开头,因此您应该在数组表达式 (i-1) 中省略 -1。

关于c++ - OpenCV:我是否超出了矩阵大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12726125/

相关文章:

c++ - 如何在 C++ 中声明一个 friend 是另一个尚未定义的类的成员函数?

javascript - 使用python OpenCV实时接收webRTC视频流

c - 反面打印

python - 更改 plt.plot 的 for 循环中的标题并创建 6x16 子图

c++字符串比较运算符>根据两个字符串的比较方式产生不同的输出

c++ - std::min_element 编译错误

C++ 指针 - 这里保存什么值?

c# - 试图了解C#方法的签名

c++ - 如何在 opencv 中屏蔽 float 垫

带有嵌套 after() 函数的 Python For 循环发生在循环之后