【opencv&VS2008】关于cvAdd的那些事

cvAdd
计算两个数组中每个元素的和

void cvAdd( const CvArr* src1, const CvArr* src2, CvArr* dst, const CvArr* mask=NULL );
src1
第一个原数组
src2
第二个原数组
dst
输出数组
mask
操作的复盖面, 8-bit单通道数组; 只有复盖面指定的输出数组被修改。
函数 cvAdd 加一个数组到别一个数组中:

dst(I)=src1(I)+src2(I) if mask(I)!=0

除复盖面外所有的数组必须有相同的类型相同的大小(或ROI尺寸)(不太懂,求解?)

程序:

// cvAdd的使用.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "opencv2/opencv.hpp"

int _tmain(int argc, _TCHAR* argv[])
{
	//创建3个窗口
	cvNamedWindow("src1");
	cvNamedWindow("src2");
	cvNamedWindow("dst");
  
    //src1,src2,dst的声明
	IplImage* src1;
	IplImage* src2;
	IplImage* dst;

	//加载图像
	src1= cvLoadImage("F://Opencv_picture//x.jpg");
	src2= cvLoadImage("F://Opencv_picture//y.jpg");

	//dst的创建
	dst= cvCreateImage(cvGetSize(src1), src1->depth, src1->nChannels);

	//cvAdd
	cvAdd(src1, src2, dst, NULL);

    //显示图片
	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的大小要相等,不相等的话不能通过啊,所以我在原图上加了小图。
结果图:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值