Qt+opencv二值化
来源:互联网 发布:淘宝简易摄影棚 编辑:程序博客网 时间:2024/06/03 17:38
我用的是Qt5.6.0+opencv3.2,套件是MinGW,关于在Qt中如何配置的问题,可以参考这篇文章,
http://blog.csdn.net/gufeiyunshi/article/details/50967440
打开图像做个二值化处理,以证明配置没有问题。
在ui界面放一个label和一个pushButton,比较喜欢使用Qt做界面开发,它融合了C#和C++两种语言的好处。
在mainwindow.h写一个槽函数,作为接受点,处理我们发出的指令。
private slots: void on_pushButton_clicked();
在mainwindow.cpp输入一下程序:
如果我们使用opencv的方法读取图像或者视频到label中,需要对图像做一个转换,QImage类型的图像才可以在ui中显示。
QImage img; img=QImage((const unsigned char*)dstImage.data,dstImage.cols,dstImage.rows,QImage::Format_Grayscale8); ui->label->setPixmap(QPixmap::fromImage(img));
注意新建的img是不是指针类型,显示的是不是指针类型。然后再使用到的就是纯粹opencv的知识了。
mainwindow.cpp主程序:
#include"openimage.h"
#include "ui_openimage.h"
#include <QString>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <QFileDialog>
#include <QMessageBox>
using namespace cv;
using namespace std;
QString filename;
openImage::openImage(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::openImage)
{
ui->setupUi(this);
}
openImage::~openImage()
{
delete ui;
}
void openImage::on_pushButton_clicked()
{
Mat srcImage,grayImage,dstImage;
srcImage=imread("F:/Projects_Qt/3.jpg");
cvtColor(srcImage,grayImage,CV_BGR2GRAY);
threshold(grayImage,dstImage,150,255,THRESH_BINARY);
QImage img;
img=QImage((const unsigned char*)dstImage.data,dstImage.cols,dstImage.rows,QImage::Format_Grayscale8);
ui->label->setPixmap(QPixmap::fromImage(img));
//QImage img=new QImage;
//filename=QFileDialog::getOpenFileName(this,tr("选择图像"),".","Images(*.png *.bmp *.jpg *tif *.GIF)::Video Files(*.avi *.mp4)");
//filename=QFileDialog::getOpenFileName(this,tr("选择图像"),"F:/Projects_Qt/3.jpg",tr("Images(*.png *.bmp *.jpg *tif *.GIF)"));
//if(filename.isEmpty())
//{
// return;
//}
// else
// {
// QImage* img=new QImage;
// if(!(img->load(filename)))
// {
// QMessageBox::information(this,tr("打开图像失败"),tr("打开图像失败"));
// delete img;
// return;
// }
// ui->label->setPixmap(QPixmap::fromImage(*img));
// }
}
上面注释的是寻找文件的方法显示图像,不利用opencv处理图像,不建议使用,但是没有配置opencv的可以用注掉的程序显示图像。
最后的处理结果:
阅读全文
0 1
- Qt+opencv二值化
- QT&OpenCV
- QT&OpenCV
- OpenCV Qt
- 【存档】QT和OpenCV
- QT+eclipse+OpenCV
- OpenCV Qt下入门
- VC2008 + Qt 配置OpenCV
- Qt+OpenCV界面
- QT+OpenCV+OpenGL
- QT OpenCV 播放视频
- OpenCV QT creator
- Using OpenCV with Qt
- QT OpenCV for ubuntu
- QT + OpenCV 配置
- ubuntu QT opencv
- QT OpenCv 图像显示
- ubuntu qt opencv
- JVM—HotSpot虚拟机探秘
- 自定义Volley
- Python入门4:文件访问与函数式编程入门
- Perlin Noise变种及无缝纹理生成
- postman发送get\post请求
- Qt+opencv二值化
- git 的最基本操作
- Hibernate入门案例
- Qt 学习之路 2(18):事件
- mvn学习日记(mvn clean install mvn archetype:generate)
- Spring JDBC-使用注解配置声明式事务
- A/B Test;名字取得不好, 很容易让人产生误解
- javawebday08(sax解析入门)
- linux中cp命令的常见用法