原图:
最终效果:
源代码:
//-----------------------------------【程序说明】----------------------------------------------
// 程序名称::《选出两幅图像中不同的地方》
// 开发所用系统:Windows 8.1 Pro
// 开发所用IDE版本:Visual Studio 2013 Ultimate
// 开发所用OpenCV版本: 2.4.8
// 程序原理:首先用将图片上下部分截取为两幅图片,然后进行比较上下两幅图片的RGB值,将两幅图的矩阵相减生成结果图,即可看出两幅图不同的地方。
// 2014年4月26日 Integtated by Thunthersine
//------------------------------------------------------------------------------------------------
#include "stdafx.h"
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
int _tmain(int argc, _TCHAR* argv[])
{
IplImage *pSrc = cvLoadImage("Image.jpg", 1);
CvSize size = cvSize(600, 376);//区域大小
cvSetImageROI(pSrc, cvRect(0, 0, size.width, size.height));//设置源图像ROI
IplImage* pDest1 = cvCreateImage(size, pSrc->depth, pSrc->nChannels);//创建目标图像
cvCopy(pSrc, pDest1); //复制图像
cvResetImageROI(pDest1);//源图像用完后,清空ROI
cvSaveImage("Image_1.jpg", pDest1);//保存目标图像
cvSetImageROI(pSrc, cvRect(0, 393, size.width, size.height));//设置源图像ROI
IplImage* pDest2 = cvCreateImage(size, pSrc->depth, pSrc->nChannels);//创建目标图像
cvCopy(pSrc, pDest2); //复制图像
cvResetImageROI(pDest2);//源图像用完后,清空ROI
cvSaveImage("Image_2.jpg", pDest2);//保存目标图像
IplImage *dst;
dst = cvCreateImage(cvGetSize(pDest1), pDest1->depth, pDest1->nChannels);
cvAbsDiff(pDest1, pDest2, dst);
cvNamedWindow("Compare_Images", 1);
cvShowImage("Compare_Images", dst);
cvWaitKey();
return 0;
}

1万+

被折叠的 条评论
为什么被折叠?



