cvSetImageROI单窗口显示多幅单通道图片

void cvSplit( const CvArr* src, CvArr* dst0, CvArr* dst1, CvArr* dst2, CvArr* dst3 );

cvSplit()函数将复制src的各个通道到图像dst0,dst1,dst2和dst3中。如果源图像少于4个通道的情况下,那么传递给cvSplit()的不必要的目标参数可设置为NULL

void cvSetImageROI(IplImage* image,CvRect rect);

image 图像头,待处理图像
rect ROI 矩形

#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include <cxcore.h>
static IplImage *src = NULL;
static IplImage *dst = NULL;
static IplImage *split[3] = {NULL};
int main(int argv,char **argc)
{    
    unsigned char i;
    if(argv==2&&(src = cvLoadImage(argc[1],1)))
    {    
        for(i=0;i<src->nChannels;i++)
            split[i] = cvCreateImage(cvGetSize(src),8,1);
        cvSplit(src,split[0],split[1],split[2],NULL);
        dst = cvCreateImage(cvSize(src->width*3,src->height),src->depth,1);            
        cvNamedWindow("MultiImage",1);
        cvSetImageROI(dst,cvRect(0,0,src->width,src->height));
        cvCopy(split[0],dst,NULL);
        cvResetImageROI(dst);
        cvSetImageROI(dst,cvRect(src->width,0,src->width,src->height));
        cvCopy(split[1],dst,NULL);
        cvResetImageROI(dst);
        cvSetImageROI(dst,cvRect(src->width*2,0,src->width,src->height));
        cvCopy(split[2],dst,NULL);
        cvResetImageROI(dst);        
        cvShowImage("MultiImage",dst);    
        cvWaitKey(0);
        cvReleaseImage(&split[0]);
        cvReleaseImage(&split[1]);
        cvReleaseImage(&split[2]);        
        cvReleaseImage(&src);
        cvReleaseImage(&dst);
        cvDestroyAllWindows();
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值