在OpenCV中使用Mat时exc_bad_access,尽管看起来我的索引是正确的

exc_bad_access when using Mat in OpenCV although it looks like my indexes are correct

本文关键字:看起来 我的 索引 access OpenCV Mat bad exc      更新时间:2023-10-16

我在Mac上使用Xcode 5和OpenCV开发了一些算法。我做C++。

我定义矩阵:

Mat src;
int cols = 560;
int rows = 260;
src.create( cols, rows, DataType<double>::type);

在代码中,我有一个循环看起来像这样:

for (int i=0; i<src.rows; i++) {
        const double* srcIterator = src.ptr<double>(i);
        for (int j=0; j<src.cols; j++) {
            double temp = srcIterator[j];
            temp++;
        }
    }

我读取了具有此循环的函数,该函数用于读取的每一帧。大多数情况下它运行正常(它在无限循环中运行并且总是可以)。

在某些运行中,我收到exc_bad_access错误。当它发生时,它发生在第一帧。错误在线上:双倍温度 = srcIterator[j];

当它发生时,j是560,总是在500以上,但每次都有一个递减值。

我想可能是我混合了列和行,但如果是正确的,当 j 为 260(行的大小)时,我会得到此错误。

拜托,任何人都猜猜它会是什么?

从文档中,您似乎在调用cv::Mat::create()时反转了行和列参数。这也解释了当您尝试读取 i 和 j 的大值时,您获得的访问无效。

相关文章: