当前位置:   article > 正文

[C++] opencv + qt 创建带滚动条的图像显示窗口代替imshow

[C++] opencv + qt 创建带滚动条的图像显示窗口代替imshow

在OpenCV中,imshow函数默认情况下是不支持滚动条的。如果想要显示滚动条,可以考虑使用其他库或方法来进行实现。

一种方法是使用Qt库,使用该库可以创建一个带有滚动条的窗口,并在其中显示图像。具体步骤如下:

1)首先,确保你已经安装了Qt库和OpenCV库。

[C++] 如何使用Visual Studio 2022 + QT6创建桌面应用

[C++] 详细教程 - opencv4.8.0安装和验证测试 (Windows + Linux)

2)创建一个新的Qt项目。你可以使用Qt Creator来创建一个新的Qt项目,或者手动创建一个Qt窗口应用程序。

3)在Qt的窗口中,添加一个QScrollArea控件,并设置其布局。

4)在OpenCV中读取图像,并将其转换为Qt图像格式。

5)将Qt图像显示在QScrollArea控件中,并设置其大小。

6)运行程序,即可看到带有滚动条的图像窗口。

下面是一个简单的示例代码:

  1. #include <opencv2/opencv.hpp>
  2. #include <QtWidgets/QApplication>
  3. #include <QtWidgets/QMainWindow>
  4. #include <QtWidgets/QScrollArea>
  5. #include <QtWidgets/QLabel>
  6. #include <QtGui/QImage>
  7. #include <QtGui/QPixmap>
  8. #include <QtGui/QPainter>
  9. using namespace cv;
  10. int main(int argc, char* argv[]) {
  11. QApplication app(argc, argv);
  12. // 创建窗口
  13. QMainWindow window;
  14. QScrollArea scrollArea;
  15. scrollArea.setBackgroundRole(QPalette::Dark);
  16. scrollArea.setWidgetResizable(true);
  17. window.setCentralWidget(&scrollArea);
  18. window.setWindowTitle("Scrollable Image Viewer");
  19. // 读取图像
  20. cv::Mat image = cv::imread("merged.png");
  21. cv::cvtColor(image, image, cv::COLOR_BGR2RGB);
  22. // 将OpenCV图像转换为Qt图像格式
  23. QImage qImage(image.data, image.cols, image.rows, QImage::Format_RGB888);
  24. // 放置图像到QLabel中
  25. QLabel* label = new QLabel();
  26. label->setPixmap(QPixmap::fromImage(qImage));
  27. scrollArea.setWidget(label);
  28. // 显示窗口
  29. window.showMaximized();
  30. return app.exec();
  31. }

这样,你就可以在一个带有滚动条的窗口中显示图像了。注意,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。

运行效果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/72619
推荐阅读
相关标签
  

闽ICP备14008679号