コード
以下の通り。
void bgr_split(){ cv::Mat src = cv::imread("./input/baboon.jpg", 1); vector<cv::Mat> planes; // 3つのチャネルB, G, Rに分離 (OpenCVではデフォルトでB, G, Rの順) cv::split(src, planes); // 保存 cv::imwrite("./output/b.jpg", planes[0]); cv::imwrite("./output/g.jpg", planes[1]); cv::imwrite("./output/r.jpg", planes[2]); // チャネルを入れ替えた画像を作成し保存 cv::Mat dst; vector<cv::Mat> color_shuffle; color_shuffle.push_back( planes[1] ); color_shuffle.push_back( planes[2] ); color_shuffle.push_back( planes[0] ); cv::merge(color_shuffle, dst); cv::imwrite("./output/shuffled.jpg", dst); } int main(int argc, char *argv[]) { bgr_split(); return 0; }