私はcvSplit()を使用してRGBチャネルを分離し、色r、g、bを示す3つの異なる画像に印刷しています。しかし、私は白黒写真のBW画像しか得られませんでした。これはcvSplit()を使用するときの正しい出力ですか?または私はそれを着色するために何かをしなければなりませんか?以下はこれまでの私のコードです。
![#include <iostream>
#include <cv.h>
#include <highgui.h>
#include "rgb.h"
using namespace std;
int main(){
IplImage* img = cvLoadImage("rgb.jpg");
IplImage* channelRed = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* channelGreen = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* channelBlue = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* Result1 = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* Result2 = cvCreateImage(cvGetSize(img), 8, 1);
IplImage* Result3= cvCreateImage(cvGetSize(img), 8, 1);
cvSplit(img, channelBlue, channelGreen, channelRed, NULL);
cvThreshold(channelBlue, Result1, 20, 255, CV_THRESH_BINARY);
cvThreshold(channelGreen, Result2, 20, 255, CV_THRESH_BINARY);
cvThreshold(channelRed, Result3, 20, 255, CV_THRESH_BINARY);
cvShowImage("original", img);
cvShowImage("blue", Result1);
cvShowImage("green", Result2);
cvShowImage("red", Result3);
cvWaitKey(0);
return 0;
}][1]