您的位置:首页 > 编程语言 > Qt开发

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

2017-01-11 21:46 513 查看
首先介绍几个OpenCV的函数

void cv::dilate(

inputArray src,

outputArray dst,

inputArray kernel,

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

int iteration=1,

int borderType=BORDER_CONSTANT,

const Scalar& borderValue=morphologyDefaultBorderValue());

其中:

src-需要进行膨化操作的原始图像,深度为:CV_8U、CV_16U、CV_16S、CV_32F、CV_64F的一种

dst-膨化后所输出的目标图像

element-腐蚀操作时采用的结构类型,默认3*3的核。

下面是如何是获取Kernel这个参数的链接

http://blog.csdn.net/qq78442761/article/details/54345488

下面是代码:

#ifndef WIDGET_H
#define WIDGET_H

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

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
Q_OBJECT

public:
explicit Widget(QWidget *parent = 0);
~Widget();

cv::Mat srcImage,dstImage,temImage;
QImage img;

public slots:
void on_DilateBtn();
private:
Ui::Widget *ui;
};

#endif // WIDGET_H
膨化的代码:

void Widget::on_DilateBtn()
{
//定义大小
int dilation_size=2;
//定义类型
int dilation_type;
dilation_type=cv::MORPH_RECT;
//调用getStruringElement函数
cv::Mat element=cv::getStructuringElement(dilation_type,
cv::Size(2*dilation_size+1,2*dilation_size+1),
cv::Point(dilation_size,dilation_size));

//调用膨胀函数
cv::dilate(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_2->size());
ui->label_2->setPixmap(QPixmap::fromImage(img));
}
下面是源码下载地址(程序打包)

http://download.csdn.net/detail/qq78442761/9735218

下面是运行结果:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opencv qt