【 OpenCV】——同一窗口显示两张图片

【 OpenCV】——在同一窗口显示两张图片

前言

本文介绍了在 Windows 中显示图像的基础知识。

使用步骤

##1.引入库
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

## 2.读入数据
//显示多个图像
void showManyImages(vector<Mat> srcImage)
{
	int nImages = srcImage.size();  //准备显示的图像个数
	Size nSizewindows;   //准备显示图像的布局
	nSizewindows = Size(2, 1);

	if (nImages > 2) {
		cout << "图像个数超过2个!" << endl;
		return;
	}

	int nRows = 500; //单个图像的显示行
	int nCols = 500; //单个图像的显示列

	//创建矩阵
	Mat dstImage(nRows, nCols * 2, CV_8UC3);

	for (int i = 0; i < nImages; i++)
	{
		//修改图片的大小
		resize(srcImage[i], srcImage[i], Size(nCols, nRows));

		//将修改后的图片复制到dstImage中
		srcImage[i].copyTo(dstImage(Rect((i % 2) * nCols, (i / 2) * nRows, nCols, nRows)));
	}
	imshow("单窗口显示两张图片", dstImage);
}

int main()
{
	//2.在工程目录下新建子目录,把图像放入子目录中;
	//3.以彩色方式打开图像并显示;
	Mat img = imread("alpha.png");
	if (img.empty())
	{
		return -1;
	}
	imshow("原图", img);

	//4.以灰度方式打开图像并显示。
	//Mat image;
	Mat image = imread("alpha.png", IMREAD_GRAYSCALE);
	//cvtColor(img, image, COLOR_BGR2GRAY);
	if (image.empty())
	{
		return -1;
	}

	imshow("灰度图", image);

	//5.新建窗口显示图像并显示,让图像停留5秒;
	namedWindow("新建窗口", WINDOW_AUTOSIZE);
	imshow("新建窗口", img);
	waitKey(5000);

	//6.存储第4步的灰度图像,并显示;
	imwrite("alpha1.png", image);
	imshow("灰度图", image);

	//7.单窗口中同时显示图像和对应的灰度图像;
	vector<Mat> imageVector(2);
	imageVector[0] = imread("alpha.png");
	imageVector[1] = imread("alpha1.png");
	showManyImages(imageVector);
	waitKey(0);
}

总结

上面是一个简单的窗口显示图片的代码片段,读取两张图片,并在窗口下显示图片。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月25日 下午3:41
下一篇 2022年3月25日 下午3:50

相关推荐