从3通道彩色图像的原始数据加载Opencv矩阵

时间:2014-03-11 08:39:07

标签: image opencv

由于我是opencv的绝对初学者,我一直在努力使用这段代码将彩色图像从字节数组加载到opencv矩阵。显示的结果是灰色图像而不是所需的颜色。

从3通道彩色图像的原始数据加载Opencv Matrix。代码如下:

uchar image_data[200*200*3];

for(int i=0;i<200;i++)

for(int j=0;j<200;j++)

{           image_data[i*200*3+j]=255;

        image_data[i*200*3+j+1]=0;

        image_data[i*200*3+j+2]=0;
}


cv::Mat image_as_mat(Size(200,200),CV_8UC3,image_data);

namedWindow("DisplayVector2",CV_WINDOW_AUTOSIZE);

imshow("DisplayVector2",image_as_mat);

waitKey(0);

1 个答案:

答案 0 :(得分:2)

你的for循环在数组中放错了值。您在循环中覆盖数组值。据我了解,你希望你的图像是红色的。像这样改变你的for循环

for(int i = 0; i <200; i++)
{
    for(int j = 0; j < 200; j++)
    {
        image_data[i*3*200 + j*3 + 0] = 255;
        image_data[i*3*200 + j*3 + 1] = 0;
        image_data[i*3*200 + j*3 + 2] = 0;
    }
}