我正在使用 cvSplit() 来分离 RGB 通道并将它们打印成 3 个不同的图像,显示颜色 r、g 和 b。但我只得到带有黑白照片的 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]