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

《OpenCV:访问Mat图像中每个像素值》

如何为任何给定的 RGB 背光颜色找到完美的文本颜色 [重复]

OpenCV之图像像素&图像色彩通道

opencv使用cv::Mat时,如何修改某个像素点的RGB分量

opencv基础篇3讲-色彩空间转换&像素运算&ROI与泛洪填充

Android中OpenCV怎么处理变换RGB矩阵中特定的像素的值呢?