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

Posted

技术标签:

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

由于我是 opencv 的绝对初学者,我一直在努力将彩色图像从字节数组加载到 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);

【问题讨论】:

【参考方案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;
    

【讨论】:

哦,我太傻了!那解决了它。我试着把它涂成蓝色。非常感谢你:) @AdityaRaman:如果有帮助,请阅读What should I do when someone answers my question?accept bhawesh 的回答。谢谢。

以上是关于从 3 通道彩色图像的原始数据加载 Opencv 矩阵的主要内容,如果未能解决你的问题,请参考以下文章

Python使用OpenCV加载彩色图像为BGR图计算每个图像通道的均值(mean of each channel)可视化图像在每个通道的均值

Python 中将 3 通道 rgb 彩色图像更改为 1 通道灰色的速度有多快?

如何使用C ++从opencv中的磁盘仅读取一个图像颜色通道

OpenCV+python 彩色图像通道拆分与组合并判断size,shape函数的用法与区别

python使用openCV把原始彩色图像转化为灰度图使用矩阵索引的方式对数据数据进行剪裁(image cropping)

opencv converTO()函数 转换图像的数据类型不改变通道数,注意与cvtColor()改变颜色空间/彩色空间/色彩空间函数区分