我有三张灰度图像,使用分割函数创建。现在我想要重新生成彩色图像。我尝试了以下代码,但没有成功。我得到的结果图像仍然是灰度的。
于是我尝试了cvtColor函数:
cv::Mat R = cv::imread("/home/r/secret_R.png",0);
cv::Mat G = cv::imread("/home/r/secret_G.png",0);
cv::Mat B = cv::imread("/home/r/secret_B.png",0);
std::vector<cv::Mat> array_to_merge;
array_to_merge.push_back(R);
array_to_merge.push_back(G);
array_to_merge.push_back(B);
cv::Mat color;
cv::merge(array_to_merge, color);
于是我尝试了cvtColor函数:
cv::Mat color_converted;
cv::cvtColor(color, color_converted, CV_GRAY2BGR);
cv::imwrite("/home/r/color_secret.png",color_converted);
但显然,它仅适用于只有一个通道的源图像。我将其中一张灰度图像传入:
cv::cvtColor(R, color_converted, CV_GRAY2BGR);
但是我仍然不能得到一张彩色图像。生成的图像仍然是灰度的。
我做错了什么?我该如何得到我的彩色图像呢?