tags:

views:

142

answers:

1

I'm trying to use the "new" 2.0 c++ version of OpenCV, but everything is else like in simple C version. I have some problem with changing the values in image.

The image is 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;
        }
    }
}

It's not working. What am I doing wrong???

Thank you!

A: 

Shouldn't you be using Vec3b instead of Vec3i ?

CV_8UC3 means your image is 8 bit, 3 channels, unsigned char. While Vec3iis for 3 channels integers and Vec3bis for 3 channels unsigned char.

So I think you should be using Vec3b

Sunny