您的位置:首页 > 运维架构

Opencv图像处理(读取图像以及简单合并)

2013-09-13 15:24 686 查看
#include<opencv2/opencv.hpp>

using namespace cv;

void main()

{
/*//读取图像并显示
IplImage* src;
src=cvLoadImage("Lena.jpg",0);//这里的lena.jpg和lena.cpp文件放在同一文件夹下1:默认读取图像原通道数。0:强制转换读取图像为灰度图。-1:读取彩色图像
cvNamedWindow("lena",CV_WINDOW_AUTOSIZE);//创建窗口
cvShowImage("lena",src);//显示图像
cvWaitKey(0);
cvDestroyWindow("lena");//销毁窗口
cvReleaseImage(&src);*///释放图像

//创建保存复制图像
IplImage* pImg;
pImg=cvLoadImage("Lena.jpg");

IplImage* pImg1=cvCreateImage(cvGetSize(pImg),pImg->depth,pImg->nChannels);//创建同样大小的图片
IplImage* pImg2=cvCreateImage(cvGetSize(pImg1),pImg->depth,pImg->nChannels);//创建同样大小的图片
IplImage* pImg3=cvCreateImage(cvGetSize(pImg1),pImg->depth,pImg->nChannels);//创建同样大小的图片
IplImage* pImg4=cvCreateImage(cvGetSize(pImg1),pImg->depth,pImg->nChannels);//创建同样大小的图片

cvCopy(pImg,pImg1,NULL);//复制图片
cvSaveImage("Lena1.jpg",pImg1);//把图片写入文件
//cvSaveImage("Lena1.bmp",pImg1);
//cvSaveImage("Lena1.png",pImg1);
//cvNamedWindow("lena1",CV_WINDOW_AUTOSIZE);
//cvShowImage("lena1",pImg1);

cvCopy(pImg,pImg2,NULL);//复制图片
cvSaveImage("Lena2.jpg",pImg2);//把图片写入文件

cvCopy(pImg,pImg3,NULL);//复制图片
cvSaveImage("Lena3.jpg",pImg3);//把图片写入文件

cvCopy(pImg,pImg4,NULL);//复制图片
cvSaveImage("Lena4.jpg",pImg4);//把图片写入文件

//合并图像
IplImage* pDstImg;
pDstImg=cvCreateImage(cvSize(pImg1->width+pImg2->width ,pImg1->height+pImg2->height),IPL_DEPTH_8U,3);
CvRect rect; 

rect=cvRect(0,0,pImg1->width,pImg1->height);
cvSetImageROI(pDstImg,rect);
cvCopy(pImg1,pDstImg);
cvResetImageROI(pDstImg);

rect=cvRect(pImg1->width,0,pImg2->width,pImg2->height);
cvSetImageROI(pDstImg,rect);
cvCopy(pImg2,pDstImg);
cvResetImageROI(pDstImg);

rect=cvRect(0,pImg1->height,pImg3->width,pImg3->height);
cvSetImageROI(pDstImg,rect);
cvCopy(pImg3,pDstImg);
cvResetImageROI(pDstImg);

rect=cvRect(pImg1->width,pImg1->height,pImg4->width,pImg4->height);
cvSetImageROI(pDstImg,rect);
cvCopy(pImg4,pDstImg);
cvResetImageROI(pDstImg);

cvNamedWindow("dstiamge");
cvShowImage("dstiamge",pDstImg);
cvSaveImage("dstImg.jpg",pDstImg);

cvWaitKey(0);
cvDestroyWindow("lena1");
cvDestroyWindow("dstiamge");

cvReleaseImage(&pImg1);
cvReleaseImage(&pImg2);
cvReleaseImage(&pImg3);
cvReleaseImage(&pImg4);
cvReleaseImage(&pDstImg);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ 图像处理 opencv