Qt creator5.7 OpenCV249之图片腐化(含源码下载)

583 篇文章 127 订阅
52 篇文章 11 订阅

首先介绍几个OpenCV的函数


void cv::erode(

InputArray src,

OutputArray dst,

InputArray kernel,

Point anchor=Point(-1,-1),

int iterations=1,

int borderType=BORDER_CONSTANT,

const Scalar& borderValue=morphologyDefaultBorderValue())


src-需要进行腐蚀的原始输入图像,图像的通道数是任意的,但要求图像的深度必须是:

CV_8U、CV_16U、CV_16S、CV_32F、CV_64F其中的一种。


其中Kernel可以通过调用getStructuringElement得到,其定义形式为

Mat cv::getStructuringElement(

int shape,

Size ksize,

Point anchor=Point(-1,-1))

该函数返回一个用于形态学操作的指定大小的形状的结构元素。

shape -cv::MorphShapes中任意一个元素形状

MORPH_REC 矩形

MORPH_CROSS 十字型

MORPH_ELLIPSE 椭圆

Ksize-结构元素的大小

Anchor取默认值把


下面是程序部分代码:

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <QString>
#include <QMessageBox>
#include <QTextCodec>
#include <QDebug>
#include <QImage>
#include <QPixmap>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    cv::Mat srcImage,dstImage,tempImage;
    QImage img;
    ~Widget();

public slots:
    void onErodeBtn();

private:
    Ui::Widget *ui;
};

#endif // WIDGET_H

下面是腐化代码:

void Widget::onErodeBtn()
{
    //定义类型
    int erosion_type;
    erosion_type = cv::MORPH_RECT;

    //定义大小
    int erosion_size=3;

    //调用getStructuringElement
    cv::Mat element=cv::getStructuringElement(erosion_type,
                                              cv::Size(2*erosion_size+1,2*erosion_size+1),
                                              cv::Point(erosion_size,erosion_size));

    //调用腐蚀函数
    cv::erode(srcImage,dstImage,element);

    //显示图片
    img = QImage((const unsigned char*)(dstImage.data),dstImage.cols,dstImage.rows,dstImage.cols*dstImage.channels(),  QImage::Format_RGB888);
    img=img.scaled(ui->label_D->size());
    ui->label_D->setPixmap(QPixmap::fromImage(img));
}

下面是程序源码打包

地址:http://download.csdn.net/detail/qq78442761/9734987

下面是运行结果:



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值