码迷,mamicode.com
首页 > 其他好文 > 详细

OpenCV_Tutorials——CORE MODULE.THE CORE FUNCTIONALITY——Adding (blending) two images using OpenCV

时间:2015-05-15 19:40:38      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:

目标

在教程中你会学到:

      1、什么事线性混合,它有什么用。

      2、如何使用addWeighted将两个图像相加

理论


注意:下面的解释来自Richard Szeliski写的《Computer Vision:Algorithms and Application》。


 

 

在前面的教程中,我们已经学习了一些像素的运算。一个有意思的二元(两个输入)运算符就是线性混合运算符:

                  技术分享

通过α从0到1变化这个运算符可以被用做两个图像或者录像之间的时间交融(cross-dissolve,这里tutorial里面用的是cross-disolve 可能错误),就像是幻灯片中或者电影制作中的效果。

代码

      一般来说,在不算长的理论解释之后,让我们来看一下代码。

 

#include<cv.h>
#include<highgui.h>
#include<iostream>
using namespace cv;

int main(int argc.char**argv)
{
double alpha=0.5;
double beta;
double input;
Mat src1,src2,dst;

std::cout<<"Simple Linear Blender"<<std::endl;
std::cout<<"--------------------------"<<std::endl;
std::cout<<"*Enter alpha [0-1]:";
std::cin>>input;
if(input>=0.0&&input<=1.0)
{
alpha=input;
}
src1=imread("../../images/LinuxLogo.jpg");
src2=imread("../../images/WindowsLogo.jpg");
if(!src1.data)
{
printf("Error loading src1\n");
return -1;
}
if(!src2.data)
{
printf("Error loading src2\n");
return -1;
}
nameWindow("Linear Blend",1);
beta=(1.0-alpha);
addWeighted(src1,alpha,src2,beta,0.0,dst);
imshwo("Linear Blend",dst);
waitKey(0);
return 0;
}

 

解释

    1、因为我们要执行:

技术分享

 

     我们需要两个源图像(f0(x)和f1(x)),因此我们使用一般的方法进行载入:

     

src1=imread("../../images/LinuxLogo.jpg");
src2=imread("../../images/WindowsLogo.jpg");

 


警告:因为我们要将src1和src2相结合,他们必须是同样的大小(宽和高)和类型


 

 

 

      2、现在我们需要产生g(x)的图像。这样addWeighted就用起来很方便了。

      

beta =(1.0-alpha);
addWeighted(src1,alpha,src2,beta,0.0,dst);

 

       因为addWeighted产生:

                                dst=α*src1+β*src2+γ

       在这个例子中,γ在上面的代码中是0.0。

    3、创建一个窗口,显示图像并且等待用户结束程序

结果

技术分享

 

OpenCV_Tutorials——CORE MODULE.THE CORE FUNCTIONALITY——Adding (blending) two images using OpenCV

标签:

原文地址:http://www.cnblogs.com/dmq5488287/p/4506430.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!