opencv学习-图像混合
Posted 殇堼
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了opencv学习-图像混合相关的知识,希望对你有一定的参考价值。
图像混合:大小、通道数、类型都相同的两张图像按照一定的比例进行合并的过程。
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat a, b, c;
a = imread("D:/images/1.png");
b = imread("D:/images/2.png");
if (a.empty()) {
printf("could not load image which named a.png...");
return -1;
}
if (a.empty()) {
printf("could not load image which named b.png...");
return -1;
}
double t = 0.5;//表示1的占比为0.5
if (a.rows == b.rows && a.cols == b.cols && a.type() == b.type()) {
addWeighted(a, alpha, b, (1.0 - t), 0.0, c);
// multiply(src1, src2, dst, 1.0);
imshow("1", a);
imshow("2", b);
imshow("1 and 2", c);
}
else {
printf("could not blend images , the size of images is not same...\\n");
return -1;
}
waitKey(0);
return 0;
}
快速混合
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat a, b, c;
a = imread("D:/images/1.png");
b = imread("D:/images/2.png");
double alpha = 0.5;
if (a.rows == b.rows && a.cols == b.cols && a.type() == b.type()) {
addWeighted(a, alpha, b, (1.0 - alpha), 0, c);
imshow("1", a);
imshow("2", b);
imshow("1 and 2", c);
}
else {
printf("could not blend images , the size of images is not same...\\n");
return -1;
}
waitKey(0);
return 0;
}
以上是关于opencv学习-图像混合的主要内容,如果未能解决你的问题,请参考以下文章
opencv学习笔记访问图像中像素的三种方式ROI区域图像叠加和图像混合