首页 > 代码库 > OpenCV Tutorials —— Adding (blending) two images using OpenCV

OpenCV Tutorials —— Adding (blending) two images using OpenCV

An interesting dyadic (two-input) operator is thelinear blend operator:

g(x) = (1 - \alpha)f_{0}(x) + \alpha f_{1}(x)

 

#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; /// Ask the user enter alpha std::cout<<" Simple Linear Blender "<<std::endl; std::cout<<"-----------------------"<<std::endl; std::cout<<"* Enter alpha [0-1]: "; std::cin>>input; /// We use the alpha provided by the user if it is between 0 and 1 if( input >= 0.0 && input <= 1.0 )   { alpha = input; } /// Read image ( same size, same type ) 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; } /// Create Windows namedWindow("Linear Blend", 1); beta = ( 1.0 - alpha ); addWeighted( src1, alpha, src2, beta, 0.0, dst); imshow( "Linear Blend", dst ); waitKey(0); return 0;}

 

 

注意 :可以用 src1=src1(Range(0:cols),Range(0:rows));

来进行图像的截取,而且,是先cols 然后 rows

OpenCV Tutorials —— Adding (blending) two images using OpenCV