OpenCV (c ++) многоканальный доступ к элементам - PullRequest
6 голосов
/ 12 мая 2010

Я пытаюсь использовать "новую" 2.0 c ++ версию OpenCV , но все остальное как в простой C-версии. У меня проблема с изменением значений на изображении.

Изображение CV_8UC3.

for (int i=0; i<image.rows; i++)
{
    for (int j=0; j<image.cols; j++)
    {
        if (someArray[i][j] == 0)
        {
            image.at<Vec3i>(i,j)[0] = 0;
            image.at<Vec3i>(i,j)[1] = 0;
            image.at<Vec3i>(i,j)[2] = 0;
        }
    }
}

Это не работает. Что я делаю не так ???

Спасибо!

1 Ответ

14 голосов
/ 17 мая 2010

Разве вы не должны использовать Vec3b вместо Vec3i?

CV_8UC3 означает, что ваше изображение 8 бит, 3 канала, без знака. В то время как Vec3i для 3 каналов целых чисел и Vec3b для 3 каналов без знака char.

Так что я думаю, что вы должны использовать Vec3b

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...