利用roi或coi局部复制拼接图像示例

http://topic.csdn.net/u/20110308/13/68597a35-6d70-4d5f-a51f-6df27dcebdfc.html

/****************
*
* 08/03/2011
*
*****************/
#include <cv.h>
#include <highgui.h>

int main()
{
    char* filePath = "D:/图片库/Lena.jpg";
    IplImage* srcImg = cvLoadImage(filePath);
    IplImage* greyImg = cvCreateImage(cvGetSize(srcImg), srcImg->depth, 1);
    IplImage* cannyImg = cvCreateImage(cvGetSize(greyImg), srcImg->depth, 1);

    CvSize dstSize;
    dstSize.width = srcImg->width * 3.0;
    dstSize.height = srcImg->height;

    IplImage* dstImg = cvCreateImage(dstSize, srcImg->depth, srcImg->nChannels);
    cvZero(dstImg);

    cvConvertImage(srcImg, greyImg);    
    cvCanny(greyImg, cannyImg, 150, 100);
    //----------------------------------
    //载入原图像到目标图像
    cvSetImageROI(dstImg, cvRect(0, 0, srcImg->width, srcImg->height));
    cvCopy(srcImg, dstImg);
     cvResetImageROI(dstImg);

    //载入灰度图像到目标图像
    cvSetImageROI(dstImg, cvRect(srcImg->width, 0, srcImg->width, srcImg->height));
    dstImg->nChannels = 1;
    cvCopy(greyImg, dstImg);
    cvResetImageROI(dstImg);
    //载入边缘检测图像到目标图像
    cvSetImageROI(dstImg, cvRect((srcImg->width) * 2.0, 0, srcImg->width, srcImg->height));
    dstImg->nChannels = 1;
    cvCopy(cannyImg, dstImg);
    cvResetImageROI(dstImg);
    //---------------------------------------
    cvNamedWindow("dstImg");
    cvShowImage("dstImg", dstImg);

    cvWaitKey(0);
    cvReleaseImage(&srcImg);
    cvReleaseImage(&greyImg);
    cvReleaseImage(&cannyImg);
    cvReleaseImage(&dstImg);
    cvDestroyWindow("dstImg");

    return 0;
}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值