用OpenCV实现创建一个新的图像并排显示左右两个输入图像

这篇具有很好参考价值的文章主要介绍了用OpenCV实现创建一个新的图像并排显示左右两个输入图像。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

创建一个并排显示左右两个输入图像程序的关键在于正确地使用 OpenCV 的 cv::Mat 类和图像处理函数。
下面是一个简单的示例代码,展示了如何实现这个功能。
这段代码假设你已经有了两个图像文件(左图和右图),并将它们并排显示在一个窗口中。

请确保在您的系统上安装了 OpenCV 库来编译和运行此代码。

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{
    // 加载左右两个图像
    Mat imgLeft = imread("left_image.jpg", IMREAD_COLOR);
    Mat imgRight = imread("right_image.jpg", IMREAD_COLOR);

    if (imgLeft.empty() || imgRight.empty())
    {
        cout << "Error loading images!" << endl;
        return -1;
    }

    // 创建一个新的图像,宽度为两个图像宽度之和,高度为两者之间的最大值
    Mat combinedImage(max(imgLeft.rows, imgRight.rows), imgLeft.cols + imgRight.cols, imgLeft.type());

    // 将左图复制到新图像的左侧
    Mat left(combinedImage, Rect(0, 0, imgLeft.cols, imgLeft.rows));
    imgLeft.copyTo(left);

    // 将右图复制到新图像的右侧
    Mat right(combinedImage, Rect(imgLeft.cols, 0, imgRight.cols, imgRight.rows));
    imgRight.copyTo(right);

    // 显示合并后的图像
    namedWindow("Combined Image", WINDOW_AUTOSIZE);
    imshow("Combined Image", combinedImage);

    // 等待按键,按下任意键关闭窗口
    waitKey(0);

    return 0;
}

这段代码完成以下任务:

  1. 使用 OpenCV 的 imread 函数加载左右两个图像。
  2. 检查图像是否成功加载。
  3. 创建一个新的 cv::Mat 对象 combinedImage,其大小能够并排容纳两个图像。
  4. 使用 cv::Mat 的构造函数创建两个子区域 leftright,分别对应于 combinedImage 中的左侧和右侧部分。
  5. 使用 copyTo 函数将左右图像分别复制到这两个子区域。
  6. 使用 imshow 函数显示合并后的图像。
  7. 程序等待用户按键后退出。

请将 "left_image.jpg""right_image.jpg" 替换为您实际图像文件的路径。文章来源地址https://www.toymoban.com/news/detail-800672.html

find_package(OpenCV QUIET)
编译和运行此代码需要链接 OpenCV 库。

到了这里,关于用OpenCV实现创建一个新的图像并排显示左右两个输入图像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 在C++使用OpenCV库创建一个带滚动条的窗口,用于动态调整图像的亮度

    QuickDemo.cpp quick_opencv.h main.cpp

    2024年02月19日
    浏览(33)
  • 创建一个新的git仓库步骤

    1,在vscode里面打开一个终端 2,创建一个git仓库:  3,将跟踪的文件添加到git中: 4,提交被跟踪的新文件到本地仓库: 5,打开浏览器进入GitHub后台,点击+号,选择New repository创建  6,在红色区域输入名字,点击Create repository提交,最后会出现图二,把它们一一粘贴到终端上

    2024年02月14日
    浏览(40)
  • anaconda创建一个新的虚拟环境

    1、打开anaconda prompt 2、输入命令创建新的环境: python版本可以自行更改 记得写y进行下一步 3、激活环境: 4、退出环境: 5、再次输入conda env list命令就可以检查虚拟环境是否创建成功。 到此这篇关于anaconda创建一个新的虚拟环境的详细操作指南的文章就介绍到这了,希望各

    2024年02月13日
    浏览(36)
  • Pyqt5+Opencv实现摄像头图像的实时读取并显示

    QTimer在界面中不可见,在UI设计器中也找不到它,只能通过纯代码实现,主要作用是定时特定的时间。 想要掌握QTimer只需掌握setInterval(设置定时时间,单位ms)、start(启动定时器),和定时时间到时所发出的信号timeout()即可。程序设计的思路: 1.先设定定时周期 2.绑定timeout()信号

    2024年02月04日
    浏览(44)
  • Delta 一个新的 git diff 对比显示工具

    平时我们会在命令行使用 git diff 相关命令来对比文件的差异。(git diff命令可参考:git-diff命令说明) 比如:当前文件和该文件以前某一次提交进行对比、某文件的某两次提交记录进行对比、对比电脑上任意两个文件的差异。 但是 git diff 对比出来没有行号,并且不能并排显

    2024年02月13日
    浏览(46)
  • QT+OpenCV实现一个标注工具(图像处理、边缘检测)

    作者是一名QT初学者,为检验学习成果及完成毕业设计,在张老师和学姐的指导下,开发了这个标注工具。CSDN上很多文章对我的学习提供了极大的帮助,分享这篇文章给需要的人一起学习进步~ 废话不多说,先看看效果: Windows10、Qt5.13.2(编译器用的是MinGW64_bit)、OpenCV4.1 环

    2024年02月11日
    浏览(41)
  • Graph-node:创建一个新的subgraph

    TetherToken ​ 作为子图开发人员,您可以定义 The Graph 正在索引哪些区块链数据以及如何存储这些数据。以下是子图定义包含的三个文件: subgraph.yaml :存储子图清单的中央 YAML 文件。 schema.graphql :定义存储哪些数据以及如何通过 GraphQL 查询数据。 AssemblyScript Mappings :用于将

    2024年02月02日
    浏览(30)
  • Git 如何将一个项目的代码放到一个新的仓库中,但不在新的仓库中显示旧的提交记录

    场景:我想把RuoYi的代码放到一个新的仓库里,放进去之后,这个仓库会显示RuoYi之前的所有提交,如何不显示这些旧的提交? 有时候,我们可能需要将一个项目的代码放到一个新的仓库中,但是我们又不想在新的仓库中显示旧的提交记录。这可能是因为旧的提交记录包含一

    2024年02月07日
    浏览(48)
  • 使用AURIX Development Studio创建一个新的工程

    Step 1 下载并安装AURIX Development Studio,打开软件 Step 2 连接单片机及下载器,由于没有防呆接口,注意单片机处连接线的正确性,本文使用逐飞科技提供的TC264芯片,连接为红线对应TMS,3V3引脚。如果连接正确,单片机扩展板上的几个LED灯为闪烁状态,表明连接正确 Step 3 打开

    2024年01月23日
    浏览(33)
  • Baumer工业相机堡盟工业相机如何使用OpenCV实现相机图像的显示(C#)

    ​ Baumer工业相机堡盟相机是一种高性能、高质量的工业相机,可用于各种应用场景,如物体检测、计数和识别、运动分析和图像处理。 Baumer的万兆网相机拥有出色的图像处理性能,可以实时传输高分辨率图像。此外,该相机还具有快速数据传输、低功耗、易于集成以及高度

    2024年01月19日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包