无法同时显示五个 Mat 图像(C++、OpenCV)
Posted
技术标签:
【中文标题】无法同时显示五个 Mat 图像(C++、OpenCV)【英文标题】:Can't show five Mat images all at once (C++, OpenCV) 【发布时间】:2014-05-01 18:34:36 【问题描述】:在下面的代码中,使用了一个方法来输入一个 Mat 图像并输出一个编辑后的 Mat 图像。代码工作正常,虽然我无法同时在屏幕上显示所有五个图像,因为当代码运行时,只显示最后一个输出图像。理想情况下,代码应在同一窗口中显示每个输出图像的更小、按比例缩小的版本。
void method (Mat input)
...
imshow("Output", output);
int main()
img_1 = imread("img1.jpg");
img_2 = imread("img2.jpg");
img_3 = imread("img3.jpg");
img_4 = imread("img4.jpg");
img_5 = imread("img5.jpg");
method(img_1);
method(img_2);
method(img_3);
method(img_4);
method(img_5);
【问题讨论】:
【参考方案1】:如果你想要几个 highgui 窗口,每个窗口都需要一个不同的名称:
void method (Mat input, const string & name)
...
imshow(name, output);
method(img_1, "image 1");
method(img_2, "image 2");
method(img_3, "image 3");
// ...
【讨论】:
谢谢!我尝试使用 resize() 方法缩小 Mat 图像,该方法位于 OpenCV 文档中,但似乎根本不起作用,就像它不是我的 OpenCV 版本(2.4.6)的一部分。 Resize 在您的 OpenCV 版本中肯定也可用。使用它来调整大小,然后通过将图像分配给更大结果图像的不同 ROI 来将图像拼接在一起。以上是关于无法同时显示五个 Mat 图像(C++、OpenCV)的主要内容,如果未能解决你的问题,请参考以下文章