opencv3.2.0形态学滤波之膨胀

//名称:膨胀
//日期:12月21日
//平台:QT5.7.1+opencv3.2.0
/* 膨胀(dilate)的含义:
       膨胀就是求局部最大值的操作,就是将图像(或图像的一部分,A)与核 B 进行卷积
       膨胀是对白色部分(高亮部分)而言的,不是黑色部分。
       膨胀将图像中的高亮部分进行膨胀,类似于“领域扩张”,效果图拥有比原图更大的高亮区域 */

/*膨胀核心API函数:
   函数原型:
               void dilate(InputArray src,OutputArray dst,InputArray kernel,
                                Point anchor=Point(-1,-1),int iterations=1,
                                int borderType = BORDER_CONSTANT,
                             const Scalar&  borderValue=morphologyDefaultBorderValue()
                               );

   参数详解:
   InputArray src-----输入图像
   OutputArray dst------目标图像,需要和源图片有一样的尺寸和类型
   InputArray kernel------膨胀操作的核,为NULL时,表示使用参考点位于中心3x3的核
   Point anchor---Point类型的anchor,锚的位置,默认值(-1,,1),表示锚位于中心
   int borderType---用于推断图像外部像素的某种边界模式,有默认BORDER_CONSTANT
   最后一个参数一般不用去管它。
*/
/*注: 
       使用dilate函数,一般只需要填前面三个参数,后面四个参数有默认值
       结合getStructuringElement函数,该函数参数有:
       第一个参数:表示内核的形状(MORPH_RECT:矩形 
                                              MORPH_CROSS:圆形
                                              MORPH_ ELLIPSE:椭圆形)
       第二个参数:表示内核的尺寸  (形如:Size(15,15))
       第三个参数:锚点的位置   (默认值(-1,,1))
*/

/*********新建QT控制台程序 ***********/
#include <QCoreApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace std;
using namespace cv;

int main()
{
    Mat srcImage = imread("/home/ttwang/Valley_logo.jpg");//读入原图

    namedWindow("膨胀操作[原图]");
    namedWindow("膨胀操作[效果图]");

    imshow("膨胀操作[原图]",srcImage);
    //获取自定义核
    Mat element = getStructuringElement(MORPH_RECT,Size(15,15));
    Mat dstImage;
    //进行膨胀操作
    dilate(srcImage,dstImage,element);
    //显示效果图
    imshow("膨胀操作[效果图]",dstImage);

    waitKey(0);
    return 0;
}
                                                                
          膨胀操作【原图】                               膨胀操作【效果图】
原文地址:https://www.cnblogs.com/ilym/p/8082663.html