opencv同一个窗口中显示两幅图像并显示窗口名字
时间: 2024-09-26 18:05:52 浏览: 30
cvHSV(展示RGB、HSV图像).rar_HSV _HSV展示图像_cvhsv_opencv;C++;HSV图像显示_por
在OpenCV中,要在同一个窗口同时显示两张图片,你可以创建两个独立的Mat对象来存储这两张图片的数据,然后使用`imshow()`函数分别显示。这里是一个简单的步骤说明:
1. 首先,你需要加载你要显示的两张图片。例如,假设它们分别是`img1.jpg`和`img2.jpg`:
```cpp
cv::Mat img1 = imread("img1.jpg", cv::IMREAD_COLOR);
cv::Mat img2 = imread("img2.jpg", cv::IMREAD_COLOR);
```
2. 确保图片加载成功,如果加载失败则添加错误处理代码。
3. 使用`cv::namedWindow()`函数创建一个新的窗口,并指定窗口名字:
```cpp
std::string windowName = "Image Display";
cv::namedWindow(windowName, cv::WINDOW_NORMAL);
```
4. 分别显示两张图片:
```cpp
cv::imshow(windowName, img1); // 显示第一张图
cv::moveWindow(windowName, 0, 0); // 将窗口移至左上角以便留出空间
// 如果你想将第二张图片放在同一窗口的不同位置,可以调整y坐标
cv::imshow(windowName, img2, cv::Point(0, img1.rows)); // 图片2从原图的第一行开始显示
```
5. 最后,添加一个等待事件循环,直到用户关闭窗口:
```cpp
cv::waitKey(0); // 持续等待用户按键,0表示无限等待
cv::destroyAllWindows(); // 关闭所有OpenCV窗口
```
如果你想要定制窗口大小和位置,可以传递额外的参数给`cv::moveWindow()`函数的第二个和第三个参数。现在你应该能在同一个窗口看到两张图片了。
阅读全文