当前位置:首页 > 编程笔记 > 正文
已解决

c++视觉图像线性混合

来自网友在路上 168868提问 提问时间:2023-10-08 22:55:59阅读次数: 68

最佳答案 问答题库688位专家为你答疑解惑

图像线性混合

使用 cv::addWeighted() 函数对两幅图像进行线性混合。alpha 和 beta 是两幅图像的权重,它们之和应该等于1。gamma 是一个可选的增益,这里设置为0。

你可以通过调整 alpha 的值来改变混合比例。如果 alpha=0.5,则两幅图像等权重混合,如果 alpha=0.7,则第一幅图像的权重更大。

图像线性混合(Image Blending)通常是通过权重对两幅图像进行加权相加的操作,产生一幅新的图像。这是一个简单的线性混合的示例:

#include <opencv2/opencv.hpp>int main() {// 读取两幅图像cv::Mat image1 = cv::imread("11.png");cv::Mat image2 = cv::imread("22.png");// 检查图像是否成功加载if (image1.empty() || image2.empty()) {std::cerr << "Error: Could not read the image(s)." << std::endl;return -1;}// 确保两幅图像大小相同if (image1.size() != image2.size()) {std::cerr << "Error: Image sizes do not match." << std::endl;return -1;}// 定义混合权重double alpha = 0.5;  // 第一幅图像的权重double beta = 1.0 - alpha;  // 第二幅图像的权重// 进行线性混合cv::Mat blendedImage;cv::addWeighted(image1, alpha, image2, beta, 0.0, blendedImage);// 显示原始图像和混合后的图像cv::imshow("Image 1", image1);cv::imshow("Image 2", image2);cv::imshow("Blended Image", blendedImage);// 等待按键cv::waitKey(0);return 0;
}

在这里插入图片描述

设置感兴趣区域再矩形线形混合

#include <opencv2/opencv.hpp>int main() {// 读取两幅图像cv::Mat image1 = cv::imread("11.png");cv::Mat image2 = cv::imread("22.png");// 检查图像是否成功加载if (image1.empty() || image2.empty()) {std::cerr << "Error: Could not read the image(s)." << std::endl;return -1;}// 确保两幅图像大小相同if (image1.size() != image2.size()) {std::cerr << "Error: Image sizes do not match." << std::endl;return -1;}// 定义感兴趣区域的矩形cv::Rect roiRect(100, 50, 150, 100);// 定义不同区域的权重double alpha1 = 0.8;  // 第一幅图像的权重double beta1 = 1.0 - alpha1;  // 第二幅图像的权重double alpha2 = 0.3;  // 第一幅图像的权重double beta2 = 1.0 - alpha2;  // 第二幅图像的权重// 创建两个感兴趣区域cv::Mat roi1 = image1(roiRect);cv::Mat roi2 = image2(roiRect);// 进行线性混合cv::Mat blendedROI;cv::addWeighted(roi1, alpha1, roi2, beta1, 0.0, blendedROI);// 将混合后的ROI放回原图像blendedROI.copyTo(image1(roiRect));// 显示原始图像和混合后的图像cv::imshow("Image 1", image1);cv::imshow("Image 2", image2);// 等待按键cv::waitKey(0);return 0;
}

在这里插入图片描述

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"c++视觉图像线性混合":http://eshow365.cn/6-17481-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!