博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用qt打开一张图片并转成灰度矩阵
阅读量:4562 次
发布时间:2019-06-08

本文共 1669 字,大约阅读时间需要 5 分钟。

首先是mat类,这个类的主要作用是构造一个容器,并将对应像素的灰度值放在容器内

#ifndef MAT_H#define MAT_H#include 
#include
#include
class mat{public: mat(){} mat(QImage &img):width(img.width()), height(img.height()),_img(img){} //构造函数,通过qt QImage类图片来完成mat类的初始化 void filldata(); //将QImage类图片内的数据转成灰度数据并附给mat类成员 QString print(); //将像素值转成Qstring对象,用于输出到label上private: int width; int height; QImage _img; std::vector
data;};void mat::filldata(){ for(int i=0;i

上面的mat类简单的实现了将qt图片转成类似matlab数据的功能。后续计划重载各种运算符,让这个mat类能实现更多矩阵的运算。

这是qmainwindow,也就是主界面,用于交互

#include "mainwindow.h"#include "ui_mainwindow.h"#include "qstring.h"#include "qfiledialog.h"#include "qmessagebox.h"#include "mat.h"MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::on_pushButton_clicked(){    QString filename;    filename = QFileDialog::getOpenFileName(this,tr("choose image"),"",tr(""));    if(filename.isEmpty())    {        return;    }    else    {        QImage* img = new QImage;        if(!(img->load(filename)))        {            QMessageBox::information(this,tr("open image failed"),                                     tr("open image failed"));            delete img;            return;        }'''        ui->label->setScaledContents(true);        //这句可以让图片自动适应label的尺寸'''           ui->label->setPixmap(QPixmap::fromImage(*img));        mat matrix(*img);        ui->label->setText(matrix.print());    }}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/ironstark/p/4892645.html

你可能感兴趣的文章
doubleclick adx note
查看>>
Celery框架
查看>>
[c#]asp.net开发微信公众平台(4)关注事件、用户记录、回复文本消息
查看>>
[转载,感觉写的非常详细]DUBBO配置方式详解
查看>>
linux Valgrind使用说明-内存泄漏
查看>>
Android在Eclipse上的环境配置
查看>>
Page Object 设计模式介绍
查看>>
全局变量报错:UnboundLocalError: local variable 'l' referenced before assignment
查看>>
面向对象(五)
查看>>
android平台下使用点九PNG技术
查看>>
Python学习3,列表
查看>>
最长回文子串
查看>>
JAVA基础-JDBC(一)
查看>>
js中for和while运行速度比较
查看>>
简单理解什么是递归(阶乘演示)
查看>>
http协议
查看>>
js倒计时,页面刷新时,不会从头计时
查看>>
洛谷1156垃圾陷阱
查看>>
python ==》 递归
查看>>
简单网络请求封装
查看>>