//名称:膨胀
//日期: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(,));
Mat dstImage;
//进行膨胀操作
dilate(srcImage,dstImage,element);
//显示效果图
imshow("膨胀操作[效果图]",dstImage); waitKey();
return ;
}

          膨胀操作【原图】                               膨胀操作【效果图】

opencv3.2.0形态学滤波之膨胀的更多相关文章

  1. opencv3.2.0形态学滤波之形态学梯度、顶帽、黑帽

    /*一.形态学梯度 (1)含义:是膨胀图和腐蚀图之差 (2)数学表达式:dst=morph-grad(src,element) =dilate(src,element) - erode(src,ele ...

  2. opencv3.2.0形态学滤波之开运算、闭运算

    /* 一.开运算: (1)开运算,其实就是先腐蚀后膨胀的过程. (2)数学表达式:dst = open(src,element) = dilate(erode(src,element)) (3)作用: ...

  3. opencv3.2.0形态学滤波之腐蚀

    /* 腐蚀(erode)含义: 腐蚀和膨胀是相反的一对操作,所以腐蚀就是求局部最小值的操作,腐蚀操作使原图中 国的高亮部分被腐蚀,效果图比原图有更小的高亮的区域. 腐蚀函数原型API及参数同膨胀相同 ...

  4. opencv 4 图像处理(2 形态学滤波:腐蚀与膨胀,开运算、闭运算、形态学梯度、顶帽、黑帽)

    腐蚀与膨胀 膨胀(求局部最大值)(dilate函数) #include <opencv2/core/core.hpp> #include <opencv2/highgui/highg ...

  5. [PCL]点云渐进形态学滤波

    PCL支持点云的形态学滤波,四种操作:侵蚀.膨胀.开(先侵蚀后膨胀).闭(先膨胀后侵蚀) 在#include <pcl/filters/morphological_filter.h>中定义 ...

  6. 学习 opencv---(1) opencv3.1.0 组件结构浅析

    本系列是根据 浅墨大神 的opencv系列而写的,,应该大部分内容会一样..如有侵权还请告知........... 开发环境:win7 + VS2013 + opencv3.1.0 至于OpenCV组 ...

  7. OpenCV学习笔记(一)——OpenCV3.1.0+VS2015开发环境配置

    摘要: 由于最近AR(增强现实)这个概念非常火爆,各种基于AR的应用及游戏逐渐面向大众,而在AR中最重要的两个技术就是跟踪识别和增强渲染,其中跟踪识别是通过OpenCV这个开源的计算机视觉库来实现的, ...

  8. centos 安装 opencv-3.1.0

    官方安装教程 http://docs.opencv.org/3.1.0/d9/d52/tutorial_java_dev_intro.html#gsc.tab=0 注意要先安装jdk和apache a ...

  9. ORBSLAM2与OPENCV3.1.0出错解决办法

    用opencv3.1.0做ORBSLAM2运行一下命令时cd ORB_SLAM2 chmod +x build.sh ./build.sh出错:/usr/bin/ld: CMakeFiles/mono ...

随机推荐

  1. Sington单例模式(创建型模式)

    一.使用Sington单例模式的动机(Motivation) 在软件系统中,经常有一些特殊的类,必须保证它们只有一个实例,才能保证它的逻辑正确性.以及良好的效率. 大多数类用的是常规的构造器,所以往往 ...

  2. static变量生命周期小研究

    A页面:定义一个普通类,类包含一个静态变量a,值为:111111111111111111 B页面:修改a的值为:22222222222222 C页面:用来查看a的值 1.在vs2008中,先打开B,再 ...

  3. c++面试题中经常被面试官面试的小问题总结(一)(本篇偏向基础知识)

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/10711810.html 1.类中的函数定义后加了一个const代表什么? 代表它将具备以下三个 ...

  4. WPF开发的彩票程序(练手好例子)

    前言 WPF是.NET最新的界面开发库,开发界面非常灵活!但是学习WPF难度也非常大. 应朋友之邀,编写了一个小程序.程序虽小,五脏俱全,WPF开发的灵活性可窥见一斑. 对于新手学习有很好的借鉴意义, ...

  5. unity 图片变纯色填充

    unity自带shader 即可

  6. Redis笔记(六):Java中使用Redis

    Java程序使用Redis 添加依赖包 Maven依赖方式 <dependency> <groupId>redis.clients</groupId> <ar ...

  7. elasticsearch的join查询

    1.概述 官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/joining-queries.html 两种类型的 ...

  8. 关于js的 for...in 你了解多少

    For...In 声明用于对数组或者对象的属性进行循环/迭代操作. 1. 求value: 对于数组 ,迭代出来的是数组元素,对于对象,迭代出来的是对象的属性值: 1)数组示例 var x var my ...

  9. winform绑定多张图片

    开发winform程序的时候经常设计到要显示多张图片的问题,其解决思路一般是先遍历文件夹中的所有图片,然后再把这些图片添加到ImageList控件中,最后再绑定显示出来.这里我们介绍两种绑定的方法: ...

  10. [PHP] 重回基础(date函数和strtotime函数)

    date():格式化一个本地时间或者日期,当前时间 2016年5月13日 15:19:49 使用函数date(),输出当前是月份中的第几天,参数:String类型 d 例如:echo date(&qu ...