繁体   English   中英

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

[英]Loading an Opencv Matrix from raw data of a 3 channel color image

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

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

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);

你的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;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM