图像混合:+
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src1, src2, dst;
src1 = imread("E:/opencv/0/0.jpg");
src2 = imread("E:/opencv/0/2.jpg");
if (!src1.data) {
printf("could not load image1...\n");
return -1;
}
if (!src2.data) {
printf("could not load image2...\n");
return -1;
}
double alpha = 0.3;
if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type()) {
addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst);
imshow("onput image", dst);
}
else {
printf("could not blend image ,the size of image is not same");
return -1;
}
namedWindow("input image1", CV_WINDOW_AUTOSIZE);
imshow("input image1",src1);
namedWindow("input image2", CV_WINDOW_AUTOSIZE);
imshow("input image2",src2);
waitKey(0);
return 0;
}
相乘:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat src1, src2, dst;
src1 = imread("E:/opencv/0/0.jpg");
src2 = imread("E:/opencv/0/2.jpg");
if (!src1.data) {
printf("could not load image1...\n");
return -1;
}
if (!src2.data) {
printf("could not load image2...\n");
return -1;
}
double alpha = 0.3;
if (src1.rows == src2.rows && src1.cols == src2.cols && src1.type() == src2.type()) {
//addWeighted(src1, alpha, src2, (1.0 - alpha), 0.0, dst);
multiply(src1,src2,dst,1.0);
imshow("onput image", dst);
}
else {
printf("could not blend image ,the size of image is not same");
return - 1;
}
namedWindow("input image1", CV_WINDOW_AUTOSIZE);
imshow("input image1",src1);
namedWindow("input image2", CV_WINDOW_AUTOSIZE);
imshow("input image2",src2);
waitKey(0);
return 0;
}
来源:CSDN
作者:visual_eagle
链接:https://blog.csdn.net/visual_eagle/article/details/104222776