【问题标题】:Loading an Opencv Matrix from raw data of a 3 channel color image从 3 通道彩色图像的原始数据加载 Opencv 矩阵
【发布时间】:2014-03-11 08:39:07
【问题描述】:

由于我是 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);

【问题讨论】:

    标签: image opencv


    【解决方案1】:

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

    【讨论】:

    猜你喜欢
    • 2016-02-15
    • 1970-01-01
    • 2018-08-19
    • 2021-06-05
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多