从 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 矩阵的主要内容,如果未能解决你的问题,请参考以下文章