我怎么能用单独的 rgb 通道数据创建一个 opencv 矩阵

How could I create an opencv matrix with separate rgb channel data

假设我有三个字符数组 r[1024], g[1024], b[1024],其中包含一张图像的 rgb 数据。我如何使用这些频道数据创建 cv::Mat

像这样:

// Create three single channel Mats
cv::Mat R(rows,cols,CV_8UC1,&r[0]);
cv::Mat G(rows,cols,CV_8UC1,&g[0]);
cv::Mat B(rows,cols,CV_8UC1,&b[0]);

然后合并成单张图片:

// Now merge the 3 individual channels into 3-band bad boy
auto channels = std::vector<cv::Mat>{B, G, R};
cv::Mat ThreeBandBoy;
cv::merge(channels, ThreeBandBoy);