3.qt+opencv 膨胀和腐蚀

网上的原理很多,我这直接上代码

#include "widget.h"
#include "ui_widget.h"

#include <QFileDialog>
#include <QDebug>
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>


Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    ui->erodehorizontalSlider->setMaximum(100);
    ui->erodehorizontalSlider->setMinimum(0);
    ui->erodehorizontalSlider->setTickInterval(1);

    ui->dilatehorizontalSlider->setMaximum(100);
    ui->dilatehorizontalSlider->setMinimum(0);
    ui->dilatehorizontalSlider->setTickInterval(1);

}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
    QString filename = QFileDialog::getOpenFileName(this,tr("open picture"),tr("Image File(*.bmp *.jpg *.jpeg *.png)"));
   // std::cout << filename.toStdString().data() << std::endl;
   mCVimage = cv::imread(filename.toStdString());
   // cv::imshow("asd",image);
   cv::cvtColor( mCVimage, mCVimage, cv::COLOR_BGR2RGB);
   QImage qimg = QImage(mCVimage.data,mCVimage.cols,mCVimage.rows,QImage::Format_RGB888);
   ui->label->setPixmap( QPixmap::fromImage(qimg));
   ui->label->resize( ui->label->pixmap()->size());
   ui->label->show();
}

void Widget::on_dilatehorizontalSlider_sliderMoved(int position)
{
    cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(position+1, position+1));
    cv::Mat dilateImage;
    cv::dilate(mCVimage, dilateImage, element);

    QImage qimg = QImage(dilateImage.data,dilateImage.cols,dilateImage.rows,QImage::Format_RGB888);
    ui->label->setPixmap( QPixmap::fromImage(qimg));
    ui->label->resize( ui->label->pixmap()->size());
    ui->label->show();
}

void Widget::on_erodehorizontalSlider_sliderMoved(int position)
{
    cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(position+1, position+1));
    cv::Mat erodeImage;
    cv::erode(mCVimage, erodeImage, element);

    QImage qimg = QImage(erodeImage.data,erodeImage.cols,erodeImage.rows,QImage::Format_RGB888);
    ui->label->setPixmap( QPixmap::fromImage(qimg));
    ui->label->resize( ui->label->pixmap()->size());
    ui->label->show();
}

如下图:

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值