图像混合
1 理论-线性混合操作
其中α的取值范围为0~1之间,表示图像的所占的权重
2 混合处理函数addWeighted()
3 代码示例
Mat src1, src2, dst;
src1 = imread("./1.png");
src2 = imread("./2.png");
if (!src1.data && src2.empty()) //判断图片是否加载成功!
{
std::cout << "打开图片失败!" << std::endl;
return -1;
}
double alpha = 0.6;
if (src1.rows == src2.rows && src1.cols == src2.cols)
{
addWeighted(src1, alpha, src2, 1.0 - alpha ,0.0 ,dst);
imshow("src1 image", src1);
imshow("src2 image", src2);
imshow("dst image", dst);
}
else
{
std::cout << "2张图片大小不同,不能处理!" << std::endl;
return -1;
}
waitKey(100000);
其他混合图像接口
(1) add()将两个和图片相加
if (src1.rows == src2.rows && src1.cols == src2.cols)
{
add(src1, src2,dst);
imshow("src1 image", src1);
imshow("src2 image", src2);
imshow("dst image", dst);
}
(2) multiply()将两个和图片相乘
if (src1.rows == src2.rows && src1.cols == src2.cols)
{
multiply(src1, src2, dst);
imshow("src1 image", src1);
imshow("src2 image", src2);
imshow("dst image", dst);
}
个人学习opencv总结,如有错误请大佬指正,谢谢!