【问题标题】:OpenCV: how to fill rgb image having values for each of RGB colors for each pixel?OpenCV:如何为每个像素填充具有每种 RGB 颜色值的 rgb 图像?
【发布时间】:2010-11-19 21:04:42
【问题描述】:

那么有 RGBRGBRGB...大小为 w*3 的缓冲区如何用这些数据填充 OpenCV 图像?

【问题讨论】:

    标签: c++ c opencv rgb


    【解决方案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 的其他变量。

      【讨论】:

        猜你喜欢
        • 2020-05-17
        • 2012-06-05
        • 2020-08-23
        • 1970-01-01
        • 2018-03-19
        • 1970-01-01
        • 2016-06-18
        • 1970-01-01
        • 2015-03-15
        相关资源
        最近更新 更多