可以在迭代期间更改常量指针吗?

时间:2015-04-10 12:55:43

标签: constants

我刚刚开始用openCV学习C ++并遇到了一个奇怪的事情,对我来说至少...... 在这段代码中,有一个for循环,其中有一个“const uchar *”的赋值作为索引(j)的函数。

for(int j = 1; j < myImage.rows - 1; ++j)
{
    const uchar* previous = myImage.ptr<uchar>(j - 1);
    const uchar* current  = myImage.ptr<uchar>(j    );
    const uchar* next     = myImage.ptr<uchar>(j + 1);

    uchar* output = Result.ptr<uchar>(j);

    for(int i = nChannels; i < nChannels * (myImage.cols - 1); ++i)
    {
        *output++ = saturate_cast<uchar>(5 * current[i]
                     -current[i - nChannels] - current[i + nChannels] - previous[i] - next[i]);
    }
}

据我所知,常数只能在施工期间分配一次,所以这里发生了什么?

我认为我错过了算法的很大一部分,并希望了解它的本质。

请不要参考实施本身,因为它已知无效。这也是我向StackOverflow发布的第一个问题,所以请考虑;)

0 个答案:

没有答案