我用的是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的可以用注掉的程序显示图像。
最后的处理结果:

Qt+opencv二值化相关推荐

  1. python opencv图像二值化函数_python opencv 二值化 计算白色像素点的实例

    python opencv 二值化 计算白色像素点的实例 贴部分代码 #! /usr/bin/env python # -*- coding: utf-8 -*- import cv2 import ...

  2. opencv二值化找轮廓检测背景简单小物体

    一.前言 本篇主要是针对背景简单,且具有固定颜色的单类小物体,方法为在灰度化时选用图片的HSV中的S通道,再使用opencv 二值化找轮廓大法可将小物体框出. 原理很简单,图片->取S通道灰度化 ...

  3. python opencv二值化图像_python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘...

    python opencv,读取彩色图像,提取三通道,图像二值化,提取图像的边缘 python opencv 1,读取图像 2,图像变矩阵 3,图像转灰度图像 4,彩色图像是3D数组 5,灰度图像是2 ...

  4. opencv 二值化_Python-OpenCV获取图像轮廓的图像处理方法

    一.引言 在<OpenCV阈值处理函数threshold处理32位彩色图像的案例>介绍了threshold 函数,但threshold 的图像阈值处理对于某些光照不均的图像,这种全局阈值分 ...

  5. OpenCV二值化方法

    cvThreshold是opencv库中的一个函数 作用:函数 cvThreshold 对单通道数组应用固定阈值操作.该函数的典型应用是对灰度图像进行阈值操作得到二值图像.(cvCmpS 也可以达到此 ...

  6. OpenCV+MFC学习笔记(二):OpenCV二值化处理图像并在Picture Control中并自适应显示

    在前面我们已经完成通过OpenCV读取图片在Picture Control中并自适应显示.下面我们很自然的需要对读取的图片进行处理,处理完之后很自然的想到要看看效果.所以今天的笔记是通过OpenCV灰 ...

  7. python + opencv + 二值化处理图片数据集(三种方法)

    二值化处理图片数据集 首先导入相应的包 cv2即opencv-python包 if __name__ == "__main__": 上面这一句话的含义: 自己的 .py 可以作为自 ...

  8. opencv 二值化 python_Python OpenCV 图像二值化-阈值分割

    1.二值化处理 # 手动二值化处理 # 设置阈值大小 threshold thresh = 125 # 设置超过阈值像素值的最大值 maxval = 255 # THRESH_BINARY:超过阈值为 ...

  9. python:opencv 二值化处理

    1:二值化处理 https://blog.csdn.net/zj360202/article/details/79165796 定义:图像的二值化,就是将图像上的像素点的灰度值设置为0或255,也就是 ...

  10. OpenCV二值化cvThreshold和自适应二值化cvAdaptiveThreshold及Otsu

    阈值化函数: double cvThreshold(constCvArr* src, CvArr* dst, double threshold, double max_value,int thresh ...

最新文章

  1. 分享6款堪称神器却很少有人知道的软件,让人惊喜!
  2. nginx gzip配置
  3. 深度探索C++对象模型——关于对象
  4. 虚拟机和linux的安装
  5. php 中间表示语言,[转载]php 底层 探究之php编译过程及中间语言 opcode
  6. 医学影像 | 谷歌算法提升结肠镜检查的覆盖率, 大幅降低患癌风险
  7. oracle删除死锁进程
  8. 【PHP】【PHP100改进系列】上传图片水印、缩略图、图片大小预处理类
  9. VSCode 上竟然也能约会,谈对象了???
  10. 详解如何实现斗鱼、B站等全局悬浮窗直播小窗口
  11. Java里线程的隔离方式_线程隔离浅析
  12. python linux 执行scp,python 使用标准库连接linux实现scp和执行命令
  13. Ubuntu下设置键盘背光灯
  14. 纯HTML5+CSS3仿B站播放页
  15. 计算机专业读研外文文献怎么找,计算机专业学术论文参考文献推荐 计算机专业学术外文文献怎么找...
  16. linux共享磁盘挂载ntfs,解决linux(ubuntu18)下无法挂载ntfs磁盘,并读写挂载硬盘
  17. 怎样将A4纸打印成A3纸张正反面
  18. wince6.0操作系统的架构
  19. VLC 媒体播放器将登陆 Apple TV
  20. 【CQOI2009】叶子的染色

热门文章

  1. json转对象的时候字段为空值的时候会被过滤
  2. 一天搞懂深度学习—学习笔记1
  3. tcpdump抓包分析
  4. VS2015的下载地址和安装教程
  5. 网络工程师——正则表达式(模糊匹配)
  6. vba 快速切换sheet
  7. 哪些项目适合写进Java程序员面试简历?推荐这10类
  8. stata15导入csv中文乱码
  9. USB协议 - UVC标准协议规范(二)
  10. 【拉普拉斯变换】3. 拉普拉斯逆变换