opencv+QT+vs 中显示图片总结
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 中显示图片总结相关推荐
- 利用opencv+QT打开并显示图片
``` // 利用opencv+QT打开并显示图片// 头文件在添加 #include "qlabel.h" // opencv #include <opencv2\core ...
- python截取图片的ROI+OpenCV 在坐标中显示图片+鼠标点击图片显示点坐标
又来做下笔记了.现在我的毕业设计进行到数据处理的阶段,要在乳腺图像上截取4张相同大小的1024*1024图片,并且每张图片都必须覆盖微钙化点,以下是我现在用到的一些简单程序. 1.首先是截图程序如下: ...
- python opencv 内存泄露_解决python中显示图片的plt.imshow plt.show()内存泄漏问题
当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...
- python中显示图片和文字
python中显示图片和文字 这里的实现方法有两种:一种是python结合opencv实现:一种是python自带的matplot工具来实现的. python+opencv实现 python+matp ...
- 调用opencv3.x 库,在MFC中显示图片
调用opencv3.x 库,在MFC中显示图片 使用opencv和MFC显示图片的方法大致分为以下几种: 1:将opencv的显示对话框嵌入到MFC窗口. 2:使用CvvImage类显示图片. 3:将 ...
- 在DataGrid中显示图片
兼谈 DadaGrid 模板列的创建 DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便.除了与数据源直接绑定以外,我们还可以通过列绑定模 ...
- opencv 采用 matplot 显示图片
opencv 采用 matplot 显示图片 import numpy as np import cv2 from matplotlib import pyplot as pltimg=cv2.imr ...
- 如何在CSDN博客中显示图片而不是链接
之前想在发的博客里加入图片,结果试了好多次,只是在博客中显示图片链接...... 后来发现添加图片时没有选择宽度与高度,无语了...... 总结一下,希望以后遇到和我一样问题的朋友可以通过这篇博客得到 ...
- python plt.show_解决python中显示图片的plt.imshow plt.show()内存泄漏问题
当要处理批量图片,且每张图片都要进行显示时,用plt.imshow() plt.show()会出现内存泄漏, 管理器中看到其中一个python进程的内存不断上涨,目前有找到解决方法 from matp ...
- Android - 文字中显示图片
Android TextView中显示图片的4种方式 转载于:https://www.cnblogs.com/qlky/p/7282658.html
最新文章
- 关于UI自动化测试元素定位细节记录
- 程序员如何学习更好的知识_如何保持学习并成为更好的程序员
- NOI 1.13编程基础之综合应用 45十进制到八进制
- java string类型的初始化
- EntboostChat 0.9(越狱版)公布,iOS免费企业IM
- 移动应用开发者在区块链中怎么赚钱?
- android 修改 dpi_努比亚 Z11|魔趣100|安卓10.0|归属地|机型修改|性能调整|稳定流畅...
- Big O notation:算法的时间复杂度
- 垃圾小白羊的leetcode刷题记录6
- 软件学习——定时器(3)
- 论文翻译解读:Logmap:Logic-based and scalable ontology matching
- vue2升级到 Vue3的异同(入门须知)
- 自兴动脑:见证人工智能发展新高度,挑战AI智慧医疗
- 永中科技破产清算中的疑问
- java植物大战僵尸_植物大战僵尸java游戏
- 新手怎么开网店?如何做好淘宝店?
- macos10.8.5原版系统dmg转iso
- 开发一番赏盲盒小程序怎么抽才能一发入魂呢
- 周岭《认知觉醒》读书笔记
- 慧算账林云婷:传统记账模式将被颠覆
热门文章
- 6000+长文,只为讲清IPv6基础知识点
- spanning tree增强
- 如何用 Ps 制作毛玻璃穿透效果?
- 网上资源之WEB前端
- iOS 11 NSPhotoLibraryAddUsageDescription 错误的解决办法
- “酒香也怕巷子深” Smartflow-Sharp 工作流
- 如何成为一名自豪的游戏程序员
- 【18】微信小程序:05-WePY简介、WePY的安装与运行、WePY文件介绍、WePY框架开发规范与使用
- dede标签调用大全
- w ndows7与XP哪个好,Win7系统与Win XP系统哪个更好?Windows7与WindowsXP区别介绍-系统城·电脑系统下载之家...