OpenCV:如何为每个像素填充具有每种 RGB 颜色值的 rgb 图像?
Posted
技术标签:
【中文标题】OpenCV:如何为每个像素填充具有每种 RGB 颜色值的 rgb 图像?【英文标题】:OpenCV: how to fill rgb image having values for each of RGB colors for each pixel? 【发布时间】:2010-11-19 21:04:42 【问题描述】:那么有 RGBRGBRGB...大小为 w*3 的缓冲区如何用这些数据填充 OpenCV 图像?
【问题讨论】:
【参考方案1】:最简单的方法是使用 at templated method 循环遍历缓冲区的元素。
unsigned char buffer[] = 1, 2, 3, ..., 18; // RGBRGB...
cv::Mat image(2, 3);
for (int i = 0; i < 18; ++i)
int row = i/9;
int col = (i/3)%3;
int rgb = i%3; // An index
image.at<unsigned char>(row,col+rgb) = buffer[i];
当然,你需要用正确的类型初始化你的矩阵,并设置颜色格式,这是我上面没有做的。详细了解 OpenCV 矩阵对象here。
【讨论】:
【参考方案2】:IplImage 有一个变量 imageData。它只是一个缓冲区。因此,如果它与 imageData 缓冲区具有相同的格式,您可以简单地复制您的数组。如果格式不同,则可以复制,但需要正确填写 IplImage 的其他变量。
【讨论】:
以上是关于OpenCV:如何为每个像素填充具有每种 RGB 颜色值的 rgb 图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何为任何给定的 RGB 背光颜色找到完美的文本颜色 [重复]
opencv使用cv::Mat时,如何修改某个像素点的RGB分量