#include <iostream>
#include <cstring>
#include <opencv2/highgui/highgui.hpp>
#include<cmath>
#include <opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
bool isEqual(Mat src1, Mat src2)
{
if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type())
return true;
return false;
}
int main()
{
Mat src1 = imread("img/1.jpg");
Mat src2 = imread("img/2.jpg");
if (src1.empty() || !src2.data)
{
cout << "could not load image ..." << endl;
return -1;
}
Mat dst;
double alpha = 0.5;//透明度
if (isEqual(src1, src2))
{
//此外像素图像相加需要其尺寸相同才可以进行添加
//对图像的像素进行加权相加 其api
//这gamma表示两点像素相加后额外添加的像素值(可用于调节亮度等)
addWeighted(src1, alpha, src2, (1 - alpha), 0.0, dst);//像素点相加
//add(src1,src2,dst,Mat());//直接像素点相加,效果没有addWeighted好
//multiply(src1,src2,dst);//像素点相乘
imshow("src1", src1);
imshow("src2", src2);
imshow("dst", dst);
}
else
{
cout << "两张图片大小不相同" << endl;
}
//int rows = src1.rows;
//int cols = src1.cols;
//int beta = 0;//gamma
//Mat result(rows, cols, CV_8UC3);
//for (int row = 0; row < rows; row++)
//{
// for (int col = 0; col < cols; col++)
// {
// //对每个像素进行操作
// Vec3b bgr1 = src1.at<Vec3b>(row, col);
// Vec3b bgr2 = src2.at<Vec3b>(row, col);
// //像素相加
// for (int i = 0; i < 3; i++)
// {
// result.at<Vec3b>(row, col)[i] = bgr1[i] * alpha + bgr2[i] * (1 - alpha) + beta;
// }
// }
//}
//imshow("res", result);
waitKey();
return 0;
}
#include <iostream>
#include <cstring>
#include <opencv2/highgui/highgui.hpp>
#include<cmath>
#include <opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
bool isEqual(Mat src1, Mat src2)
{
if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type())
return true;
return false;
}
int main()
{
Mat src1 = imread("img/1.jpg");
Mat src2 = imread("img/2.jpg");
if (src1.empty() || !src2.data)
{
cout << "could not load image ..." << endl;
return -1;
}
Mat dst;
double alpha = 0.5;//透明度
if (isEqual(src1, src2))
{
//此外像素图像相加需要其尺寸相同才可以进行添加
//对图像的像素进行加权相加 其api
//这gamma表示两点像素相加后额外添加的像素值(可用于调节亮度等)
addWeighted(src1, alpha, src2, (1 - alpha), 0.0, dst);//像素点相加
//add(src1,src2,dst,Mat());//直接像素点相加,效果没有addWeighted好
//multiply(src1,src2,dst);//像素点相乘
imshow("src1", src1);
imshow("src2", src2);
imshow("dst", dst);
}
else
{
cout << "两张图片大小不相同" << endl;
}
//int rows = src1.rows;
//int cols = src1.cols;
//int beta = 0;//gamma
//Mat result(rows, cols, CV_8UC3);
//for (int row = 0; row < rows; row++)
//{
// for (int col = 0; col < cols; col++)
// {
// //对每个像素进行操作
// Vec3b bgr1 = src1.at<Vec3b>(row, col);
// Vec3b bgr2 = src2.at<Vec3b>(row, col);
// //像素相加
// for (int i = 0; i < 3; i++)
// {
// result.at<Vec3b>(row, col)[i] = bgr1[i] * alpha + bgr2[i] * (1 - alpha) + beta;
// }
// }
//}
//imshow("res", result);
waitKey();
return 0;
}