矩阵和图像的操作
(1)cvAdd函数
其结构
void cvAdd(//图像加和 const CvArr* src1,//第一个原矩阵 const CvArr* src2,//第二个原矩阵 CvArr* dst, //存放矩阵 const CvArr* mask = NULL: //控制点 );
程序实例
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
int main(int argc, char** argv)
{
IplImage *src1, *src2,*src3;
src1=cvLoadImage("1.jpg");
src2=cvLoadImage("3.jpg");
src3=cvLoadImage("4.jpg");
cvAdd(src1,src2,src2);
cvShowImage( "测试1", src1);
cvShowImage( "测试2", src2);
cvShowImage( "测试3", src3);
cvWaitKey();
return 0;
}
(2)cvAddS函数
其结构
void cvAddS(//图像加常量 const CvArr* src1,//第一个原矩阵 CvScalar value, //加和常量 CvArr* dst, //存放矩阵 const CvArr* mask = NULL: //控制点 );
程序实例
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
int main(int argc, char** argv)
{
IplImage *src1, *src2,*src3;
src1=cvLoadImage("1.jpg");
src2=cvLoadImage("1.jpg");
src3=cvLoadImage("1.jpg");
CvScalar cs;
cs.val[2] = 16.0;
cvAddS(src1,cs,src2);
cs.val[1] = 16.0;
cvAddS(src1,cs,src3);
cvShowImage( "测试1", src1);
cvShowImage( "测试2", src2);
cvShowImage( "测试3", src3);
cvWaitKey();
return 0;
}
(3)cvAddWeighted函数
其结构
void cvAddWeighted( //图像融合 const CvArr* src1,//第一个原矩阵. double alpha,//第一个矩阵元素的权值 const CvArr* src2,//第二个原矩阵. double beta,//第二个矩阵元素的权值 double gamma,//添加的常数项。 CvArr* dst //输出矩阵 );
实例程序
#include <cv.h>
#include <highgui.h>
#include <stdio.h>
int main(int argc, char** argv)
{
IplImage *src1, *src2;
src1=cvLoadImage("1.jpg");
src2=cvLoadImage("2.jpg");
int x = 100;
int y = 170;
int width = 230;
int height = 200;
double alpha = 0.2;
double beta = 0.9;
cvSetImageROI(src1, cvRect(x,y,width,height));
cvSetImageROI(src2, cvRect(x,y-20,width,height));
cvAddWeighted(src1, alpha, src2, beta,0.0,src1);
cvResetImageROI(src1);
cvNamedWindow( "Alpha_blend", 1 );
cvShowImage( "测试", src1 );
cvWaitKey();
return 0;
}
to be continued
《学习opencv》笔记——矩阵和图像操作——cvAdd、cvAddS and cvAddWeighted,布布扣,bubuko.com
《学习opencv》笔记——矩阵和图像操作——cvAdd、cvAddS and cvAddWeighted
原文:http://blog.csdn.net/zhurui_idea/article/details/27207423