关于cvAbsDiff的那些事

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).

所有数组必须有相同的数据类型相同的大小(或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的大小要一样大,否则会报错的!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值