在OpenCV中用三个单一的Mats创建BGR Mat

时间:2017-08-01 17:31:26

标签: c++ opencv

我有三个Mats,它们都是相同的大小,相同的数据类型等。每个都代表一个通道,现在我想将它们合并为一个RGB-(BGR)-Image。

数据本身来自另一个计算,所以代码目前如下所示:

Mat blue = Mat(Size(1920,1080),CV_8UC1,blue_result);
Mat red = Mat(Size(1920,1080),CV_8UC1,red_result);
Mat green = Mat(Size(1920,1080),CV_8UC1,green_result);

有没有一种简单的方法可以将这三个矩阵合并为一个CV_8UC3 Mat?

1 个答案:

答案 0 :(得分:2)

merge()功能。

Mat blue = Mat(Size(1920,1080),CV_8UC1,blue_result);
Mat red = Mat(Size(1920,1080),CV_8UC1,red_result);
Mat green = Mat(Size(1920,1080),CV_8UC1,green_result);     

Mat planes[] = { blue, green, red };
Mat bgrImage;
merge(planes, 3, bgrImage);