天天看點

opencv将三張單通道圖合成為一張三通道圖并儲存

int main(int argc, char** argv)   

{  

    IplImage * src1=cvLoadImage("F:/fighting/project/data/fcn-data/img_train/1-0.jpg");

    IplImage * src2=cvLoadImage("F:/fighting/project/data/fcn-data/img_train/1-1.jpg");

    IplImage * src3=cvLoadImage("F:/fighting/project/data/fcn-data/img_train/1-2.jpg");

    IplImage * src11 = cvCreateImage(cvGetSize(src1), IPL_DEPTH_8U, 1);

    cvCvtColor(src1,src11,CV_BGR2GRAY);

    IplImage * src22 = cvCreateImage(cvGetSize(src2), IPL_DEPTH_8U, 1);

    cvCvtColor(src2,src22,CV_BGR2GRAY);

    IplImage * src33 = cvCreateImage(cvGetSize(src3), IPL_DEPTH_8U, 1);

    cvCvtColor(src3,src33,CV_BGR2GRAY);

    //IplImage * dst=cvCreateImage(size,pSrc->depth,pSrc->nChannels);

    //IplImage * dst=cvCreateImage(cvSize(src1->width,src1->height),src1->depth,1);

    IplImage* dst= cvCreateImage(cvGetSize(src1), src1->depth, 3);

    //cout<<""<<src1->depth<<endl;

    cvMerge(src11,src22,src33,0,dst);

    cvNamedWindow("混合後圖像");  

    cvShowImage("混合後圖像",dst);

    cvSaveImage("E:/搜狗高速下載下傳/Visual Studio 2010/Projects/onecut with seeds/onecut with seeds/2.jpg",dst);

    IplImage * rImg=cvCreateImage(cvSize(dst->width,dst->height),dst->depth,1);

    IplImage * bImg=cvCreateImage(cvSize(dst->width,dst->height),dst->depth,1);

    IplImage * gImg=cvCreateImage(cvSize(dst->width,dst->height),dst->depth,1);

    cvSplit(dst,bImg,gImg,rImg,0);

    cvNamedWindow("r");  

    cvShowImage("r",rImg);

    cvNamedWindow("g");  

    cvShowImage("g",gImg);

    cvNamedWindow("b");  

    cvShowImage("b",bImg);

    cvWaitKey();

}