opencv支持QT,QT也有vs插件,所以学习一下用QT显示图片的方法,实现的是图片的读取显示与反转显示。
各种配置完成之后,在vs中新建一个qt项目,项目名字不要有中文,一路确定、下一步,直到完成。

在项目下面会自动生成一些文件。.ui为qt设计文件,双击出现 qt设计师 程序,在这当中可以自由拖拽控件来设计界面。
如图,使用 两个按键 两个label 两个scrollarea。

主要用到的是头文件myclass.h 和源文件main.cpp、myclass.cpp文件。
main不用管,需要编写代码的是在myclass.h与myclass.cpp文件中。

这里我将用两种方法实现图片显示。
方法一 Qlabel显示

myclass.h头文件代码如下

#ifndef MYCLASS_H
#define MYCLASS_H#include <QtWidgets/QMainWindow>
#include "ui_myclass.h"
#include<QGraphicsScene>
#include<QGraphicsView>                   //graphicsview类
#include<opencv2\imgproc\imgproc.hpp>
#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>  //opencv申明
#include <qfiledialog.h>                //getopenfilename 类申明
#include <qlabel.h>                     //label类
using namespace cv;class MyClass : public QMainWindow
{Q_OBJECTpublic:MyClass(QWidget *parent = 0);~MyClass();private slots:                        //声明两个槽函数,分别对应open、processvoid on_open_clicked();           //打开图片void on_process_clicked();        //处理图片private:Ui::MyClassClass ui;Mat image; //Mat类申明QLabel *label1;QLabel *label11;};#endif // MYCLASS_H

myclass.cpp文件代码如下

#include "myclass.h"using namespace cv;
using namespace std;MyClass::MyClass(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);
}MyClass::~MyClass()
{//析构函数
}
void MyClass::on_open_clicked()
{QString fileName = QFileDialog::getOpenFileName(this, tr("Open Image"), ".", tr("Image Files(*.jpg *.png *.jpeg *.bmp)"));//获取图片路径的程序代码-this-界面 open image-窗口名称  files 打开文件格式 (格式之间要空格区分)string str = fileName.toStdString();  // 将filename转变为string类型;image = imread(str);//image=imread(fileName.toLatin1().data);cvtColor(image, image, CV_BGR2RGB);cv::resize(image, image, Size(300, 200));QImage img = QImage((const unsigned char*)(image.data), image.cols, image.rows, QImage::Format_RGB888);label1 = new QLabel();label1->setPixmap(QPixmap::fromImage(img));label1->resize(QSize(img.width(), img.height()));ui.scrollmage->setWidget(label1);}
void MyClass::on_process_clicked()
{flip(image, image, 4);//反转函数 0 上下反转;整数,水平发转;负数,水平垂直均反转QImage img1 = QImage((const unsigned char*)(image.data), image.cols, image.rows, QImage::Format_RGB888);label11 = new QLabel();label11->setPixmap(QPixmap::fromImage(img1));label11->resize(QSize(img1.width(), img1.height()));ui.scrollmage_2->setWidget(label11);
}

显示结果为如图:

方法二 graphicsview显示

在qt设计师当中拖入graphics view 控件,命名为image1

myclass.h头文件不需要变动,(private中label1、label11没用了),
myclass.cpp文件中 打开图片按键 代码如下

    ui.image1->resize(img.size()); QGraphicsScene *scene = new QGraphicsScene;scene->addPixmap(QPixmap::fromImage(img));ui.image1->setScene(scene);ui.image1->adjustSize();ui.image1->show();

方法三 简单的Qlabel 显示
myclass.cpp中 按键主要代码

    QLabel *label = new QLabel(this);label->move(100, 100);label->setPixmap(QPixmap::fromImage(img));label->resize(label->pixmap()->size());label->show();

注意!
UI文件同步到VS中有一定的延迟,也就是你在UI上拖放了一个Button,但是要过一段时间VS的自动提示才会有那个Button对象名的提示,并且改动UI后要首先编译一次。

如有错误 ,欢迎指正

opencv+QT+vs 中显示图片总结相关推荐

  1. 利用opencv+QT打开并显示图片

    ``` // 利用opencv+QT打开并显示图片// 头文件在添加 #include "qlabel.h" // opencv #include <opencv2\core ...

  2. python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标

    又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...

  3. python opencv 内存泄露_解决python中显示图片的plt.imshow plt.show()内存泄漏问题

    当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...

  4. python中显示图片和文字

    python中显示图片和文字 这里的实现方法有两种:一种是python结合opencv实现:一种是python自带的matplot工具来实现的. python+opencv实现 python+matp ...

  5. 调用opencv3.x 库,在MFC中显示图片

    调用opencv3.x 库,在MFC中显示图片 使用opencv和MFC显示图片的方法大致分为以下几种: 1:将opencv的显示对话框嵌入到MFC窗口. 2:使用CvvImage类显示图片. 3:将 ...

  6. 在DataGrid中显示图片

    兼谈 DadaGrid 模板列的创建 DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便.除了与数据源直接绑定以外,我们还可以通过列绑定模 ...

  7. opencv 采用 matplot 显示图片

    opencv 采用 matplot 显示图片 import numpy as np import cv2 from matplotlib import pyplot as pltimg=cv2.imr ...

  8. 如何在CSDN博客中显示图片而不是链接

    之前想在发的博客里加入图片,结果试了好多次,只是在博客中显示图片链接...... 后来发现添加图片时没有选择宽度与高度,无语了...... 总结一下,希望以后遇到和我一样问题的朋友可以通过这篇博客得到 ...

  9. python plt.show_解决python中显示图片的plt.imshow plt.show()内存泄漏问题

    当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...

  10. Android - 文字中显示图片

    Android TextView中显示图片的4种方式 转载于:https://www.cnblogs.com/qlky/p/7282658.html

最新文章

  1. 关于UI自动化测试元素定位细节记录
  2. 程序员如何学习更好的知识_如何保持学习并成为更好的程序员
  3. NOI 1.13编程基础之综合应用 45十进制到八进制
  4. java string类型的初始化
  5. EntboostChat 0.9(越狱版)公布,iOS免费企业IM
  6. 移动应用开发者在区块链中怎么赚钱?
  7. android 修改 dpi_努比亚 Z11|魔趣100|安卓10.0|归属地|机型修改|性能调整|稳定流畅...
  8. Big O notation:算法的时间复杂度
  9. 垃圾小白羊的leetcode刷题记录6
  10. 软件学习——定时器(3)
  11. 论文翻译解读:Logmap:Logic-based and scalable ontology matching
  12. vue2升级到 Vue3的异同(入门须知)
  13. 自兴动脑:见证人工智能发展新高度,挑战AI智慧医疗
  14. 永中科技破产清算中的疑问
  15. java植物大战僵尸_植物大战僵尸java游戏
  16. 新手怎么开网店?如何做好淘宝店?
  17. macos10.8.5原版系统dmg转iso
  18. 开发一番赏盲盒小程序怎么抽才能一发入魂呢
  19. 周岭《认知觉醒》读书笔记
  20. 慧算账林云婷:传统记账模式将被颠覆

热门文章

  1. 6000+长文,只为讲清IPv6基础知识点
  2. spanning tree增强
  3. 如何用 Ps 制作毛玻璃穿透效果?
  4. 网上资源之WEB前端
  5. iOS 11 NSPhotoLibraryAddUsageDescription 错误的解决办法
  6. “酒香也怕巷子深” Smartflow-Sharp 工作流
  7. 如何成为一名自豪的游戏程序员
  8. 【18】微信小程序:05-WePY简介、WePY的安装与运行、WePY文件介绍、WePY框架开发规范与使用
  9. dede标签调用大全
  10. w ndows7与XP哪个好,Win7系统与Win XP系统哪个更好?Windows7与WindowsXP区别介绍-系统城·电脑系统下载之家...