创建一个并排显示左右两个输入图像程序的关键在于正确地使用 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;
}
这段代码完成以下任务:文章来源:https://www.toymoban.com/news/detail-800672.html
- 使用 OpenCV 的
imread
函数加载左右两个图像。 - 检查图像是否成功加载。
- 创建一个新的
cv::Mat
对象combinedImage
,其大小能够并排容纳两个图像。 - 使用
cv::Mat
的构造函数创建两个子区域left
和right
,分别对应于combinedImage
中的左侧和右侧部分。 - 使用
copyTo
函数将左右图像分别复制到这两个子区域。 - 使用
imshow
函数显示合并后的图像。 - 程序等待用户按键后退出。
请将 "left_image.jpg"
和 "right_image.jpg"
替换为您实际图像文件的路径。文章来源地址https://www.toymoban.com/news/detail-800672.html
find_package(OpenCV QUIET)
编译和运行此代码需要链接 OpenCV 库。
到了这里,关于用OpenCV实现创建一个新的图像并排显示左右两个输入图像的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!