OpenCV实现两张图片的归并
当前位置:以往代写 > C/C++ 教程 >OpenCV实现两张图片的归并
2019-06-13

OpenCV实现两张图片的归并

OpenCV实现两张图片的归并

副标题#e#

道理:

两张图片归并,想想图片是用一个个像素点来存储,每个像素点有他的值。那么归并,无非就是像素点值得归并,利用的公式可以就是给两张图片别离一个权值,然后求和。向下面这个公式:

OpenCV实现两张图片的合并

的值位于0至1之间

OpenCV实现:

那么我们在openCV内怎么实现呢?在openCV中,有一个addWeighted函数,函数详细挪用可以看这里。

读取完两个要归并的图片后,(留意,这里归并的图片必需是沟通的size和type,就是说图片长宽像素数一样,color存储方法要一样。我选的是388*388的png图片

/// Read image ( same size, same type )  
       src1= imread("zh.png");  
       src2= imread("zh2.png");

挪用addWeighted函数,

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

这里src1和src2都是读取之后的矩阵,alpha和beta是他们的权重。

其实addWeighted的进程是下面的公式:

OpenCV实现两张图片的合并

这里的Y是0.0。

好,让我们动手来做这个操纵。代码如下:

#include <cv.h>  
#include <opencv2/core/core.hpp>    
#include<opencv2/highgui/highgui.hpp>    
#include <highgui.h>  
#include <iostream>  
      
using namespace cv;  
      
int main()  
{  
    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("zh.png");  
    src2 = imread("zh2.png");  
      
    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); //这里挪用了addWeighted函数,获得的功效存储在dst中  
      
    imshow("Linear Blend",dst);  
      
    waitKey();  
    return 0;  
}


#p#副标题#e#

功效:

图片1:

OpenCV实现两张图片的合并

图片2:

OpenCV实现两张图片的合并

归并后的图片:

OpenCV实现两张图片的合并

作者:csdn博客 钟桓

    关键字:

在线提交作业