opencv学习笔记05(简单图像计算)

(图文件混合)

所需新函数:

addWight(第一个图文件,第一个图权重,第二个图,第二个权重,相加后再加的值,结果图,景深)

1.第五个参数是相加之后再加的像素值,如果再加上此参数之后超过255则会变成白色(详情参照运算式。
2.景深可有可无 
3. 运算式:last = alpha *image1  +  beta*image2  +gamma(第五个参数) 

相同分辨率图片混合:

#include "opencv2/imgcodecs/legacy/constants_c.h"
#include <opencv2/highgui/highgui_c.h>
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main(int argc,char** argv)
{
	//文件权重
	double alpha=0.0, beta, input;
	//图像
	Mat image1,image2,last;

	//用户输入权重
	cout << "请输入第一张图权重(0到1):";
	cin >> input;
	//确保0到1
	if (alpha >= 0 && alpha <= 1)
	{
		alpha = input;
	}

	//读取两张图片(大小类型相同)

	image1 = imread("C:\\god_of_shi.jpg");
	image2 = imread("C:\\star.jpg");

	//确保读取正确
	if (!image1.data)
	{
		cout << "读取图像1错误" << endl;
		return -1;
	}

	if (!image2.data)
	{
		cout << "读取图像2错误" << endl;
		return -1;
	}


	//显示
	namedWindow("混合", 1);

	//图像二的权重计算
	beta = (1.0 - alpha);

	//两图相加
	addWeighted(image1, alpha, image2, beta, 0.0, last,0.5);

	imshow("混合", last);
	waitKey(0);

	return 0;
}

不同分辨率图片混合:
#include “opencv2/imgcodecs/legacy/constants_c.h”
#include <opencv2/highgui/highgui_c.h>
#include <opencv2/opencv.hpp>
#include
using namespace std;
using namespace cv;

int main(int argc,char** argv)
{

//图像
Mat image1,image2,last,image3;


//读取两张图片(大小类型相同)

image1 = imread("C:\\god_of_shi.jpg");
image2 = imread("C:\\star.jpg");

//确保读取正确
if (!image1.data)
{
	cout << "读取图像1错误" << endl;
	return -1;
}

if (!image2.data)
{
	cout << "读取图像2错误" << endl;
	return -1;
}

//显示
namedWindow("混合前", 1);


//定义第二张图再第一张图中的位置
Mat imageROI = image1(Rect(10, 10, image2.cols,image2.rows));

imshow("混合前", image2);






//两图相加
addWeighted(image1, 0.5, image2, 0.5, 0., imageROI);
namedWindow("混合后");

imshow("混合后",imageROI);
waitKey(0);

return 0;

}
问题:
abord has been called:
第二张图片混合后超过原大小,矩阵溢出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值