📜  合并图像 opencv c++ (1)

📅  最后修改于: 2023-12-03 15:07:28.047000             🧑  作者: Mango

合并图像 OpenCV C++

OpenCV是一个强大的计算机视觉库,可以使用它来进行图像处理和分析。本文将介绍如何使用OpenCV C++来合并两张图像。具体来说,我们将学习以下内容:

  1. 读入两张图像
  2. 调整图像大小
  3. 合并图像
  4. 保存结果
读入两张图像

首先我们需要读入两张要合并的图像。我们可以使用OpenCV的imread函数来读入图像,imread函数可以读入多种格式的图像文件。

cv::Mat image1 = cv::imread("image1.jpg");
cv::Mat image2 = cv::imread("image2.jpg");
调整图像大小

在合并两张图像之前,我们需要调整它们的大小,使它们具有相同的尺寸。可以使用OpenCV的resize函数来调整图像大小。

cv::resize(image1, image1, cv::Size(640, 480));
cv::resize(image2, image2, cv::Size(640, 480));

在这个例子中,我们将两张图像的大小都调整为640x480。

合并图像

现在,我们可以将两张图像合并在一起。可以使用OpenCV的hconcat函数将它们水平合并在一起。如果要垂直合并它们,可以使用vconcat函数。

cv::Mat mergedImage;
cv::hconcat(image1, image2, mergedImage);

在这个例子中,我们将两张图像水平合并在一起,结果存储在mergedImage中。

保存结果

最后,我们可以使用imwrite函数将合并后的图像保存到文件中。

cv::imwrite("mergedImage.jpg", mergedImage);

在这个例子中,我们将合并后的图像保存到mergedImage.jpg文件中。

完整代码
#include <opencv2/opencv.hpp>

int main()
{
    cv::Mat image1 = cv::imread("image1.jpg");
    cv::Mat image2 = cv::imread("image2.jpg");

    cv::resize(image1, image1, cv::Size(640, 480));
    cv::resize(image2, image2, cv::Size(640, 480));

    cv::Mat mergedImage;
    cv::hconcat(image1, image2, mergedImage);

    cv::imwrite("mergedImage.jpg", mergedImage);

    return 0;
}

以上就是使用OpenCV C++合并两张图像的全部过程。