AbsDiff
计算两个数组差的绝对值
void cvAbsDiff( const CvArr* src1, const CvArr* src2, CvArr* dst );
src1
第一个原数组
src2
第二个原数组
dst
输出数组
函数 cvAbsDiff 计算两个数组差的绝对值
dst(I)c = abs(src1(I)c - src2(I)c).
结果图:
计算两个数组差的绝对值
void cvAbsDiff( const CvArr* src1, const CvArr* src2, CvArr* dst );
src1
第一个原数组
src2
第二个原数组
dst
输出数组
函数 cvAbsDiff 计算两个数组差的绝对值
dst(I)c = abs(src1(I)c - src2(I)c).
所有数组必须有相同的数据类型相同的大小(或ROI大小)
程序:找茬^_^
// cvAbsDiff函数的使用.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "opencv2/opencv.hpp"
int _tmain(int argc, _TCHAR* argv[])
{
//创建三个窗口,用于分别显示图片
cvNamedWindow("src1", CV_WINDOW_AUTOSIZE);
cvNamedWindow("src2", CV_WINDOW_AUTOSIZE);
cvNamedWindow("dst", CV_WINDOW_AUTOSIZE);
IplImage* src1;
IplImage* src2;
IplImage* dst;
//加载图片src1、src2
src1= cvLoadImage("F://Opencv_picture//c.jpg");
src2= cvLoadImage("F://Opencv_picture//d.jpg");
//创建dst
dst= cvCreateImage(cvGetSize(src1), src1->depth, src1->nChannels );
//使用cvAbsDiff处理图像
cvAbsDiff(src1, src2, dst);
//显示图像
cvShowImage("src1", src1);
cvShowImage("src2", src2);
cvShowImage("dst", dst);
//暂停
cvWaitKey(0);
//释放内存和销毁窗口
cvReleaseImage(&src1);
cvReleaseImage(&src2);
cvReleaseImage(&dst);
cvDestroyWindow("src1");
cvDestroyWindow("src2");
cvDestroyWindow("dst");
return 0;
}
结果图:
哈哈,找出两幅图的不同点啦!(其实那些相同的部分都应该为黑色的,这是因为我的两幅图不能完全重合)
PS: 输入的图像src1、src2的大小要一样大,否则会报错的!