矩阵和图像的操作
(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