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();
}