opencv 两图叠加

2019-07-16  本文已影响0人  Caiaolun
void cvAddWeighted( const CvArr* src1, double alpha,
                    const CvArr* src2, double beta,
                    double gamma, CvArr* dst );
参数1:src1,第一个原数组.
参数2:alpha,第一个数组元素权重
参数3:src2第二个原数组
参数4:beta,第二个数组元素权重
参数5:gamma,图1与图2作和后添加的数值。不要太大,不然图片一片白。总和等于255以上就是纯白色了。

#include <opencv2/opencv.hpp>
#include <iostream>
 
using namespace std;
using namespace cv;
 
int main()
{
    /*************************************************************************
    * 图片叠加
    *************************************************************************/
    Mat image = imread("../../bin/data/1.jpg");
    Mat image_blow = imread("../../bin/data/car_horn.png");

    // image_Roi 大图要被叠加的地方
    // image_Roi 是 image的浅拷贝
    // image_Roi 的头部信息记录了image被截取的部位, 实际整体数据还是image, 对image_Roi修改还是一样对image有影响
    Mat image_Roi = image(Rect(100, 100, image_blow.cols, image_blow.rows));
    addWeighted(image_Roi, 0.3, image_blow, 0.7, -1, image_Roi);

    imshow("叠加", image);

    waitKey(30);
    getchar();
}
上一篇 下一篇

猜你喜欢

热点阅读