OpenCV--相同&不同尺寸图像的融合

相同尺寸图像的融合

#include <opencv2/highgui/highgui.hpp>//highgui模块头文件
#include<opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
int main()
{
	Mat image = imread("1.jpg");
	Mat logo = imread("star.jpg");

	resize(logo, logo, Size(image.cols, image.rows));
	addWeighted(image, 0.6, logo, 0.4, 0., image);
	namedWindow("合成");
	imshow("合成", image);

	waitKey(0);
	return 0;
 }

结果图:在这里插入图片描述

不同尺寸图像的融合

#include <opencv2/highgui/highgui.hpp>//highgui模块头文件
#include<opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>//图像处理头文件
using namespace cv;
int main()
{
	Mat image = imread("1.jpg");
	Mat logo = imread("star.jpg");

	Mat imageROI;
	imageROI = image(Rect(500, 100, logo.cols, logo.rows));//设置感兴趣区域
	addWeighted(imageROI, 0.6, logo, 0.4, 0., imageROI);
	namedWindow("合成");
	imshow("合成", image);
	
	waitKey(0);
	return 0;
 }

结果图:在这里插入图片描述
其中:
Rect函数:用来定义一个矩形区域
Rect(int x,int y ,int width, int height);
参数x为矩形左上角x坐标,参数y为矩形左上角y坐标,参数width为矩形的宽,参数height为矩形的高

.cols返回图像的列
.rows返回图像的行

addWeighted函数:计算两个数组(图像阵列)的加权和
函数原型:void (InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst, int dtype=-1);
1.第一个参数 src1表示需要加权的第一个数组,常常填一个Mat;
2.第二个参数alpha表示第一个数组的权重;
3.第三个参数src2表示需要加权的第二个数组,它需要和第一个数组拥有相同的尺寸和通道数;
4.第四个参数beta表示第二个数组的权重;
5.第五个参数gamma是一个加到权重总和上的标量值;
6.第六个参数dst表示输出数组;
7.第七个参数dtype表示输出阵列的可选深度,有默认值-1;

注意:使用addWeight函数时一定要两幅图像尺寸相同,否则程序运行会出错,产生未经处理的异常。
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值