OpenCV之图像膨胀:dilate函数(C++实现)

article/2025/8/29 5:34:33

dilate函数是使用像素邻域内的局部极大运算符来膨胀图像。

函数原型:

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,输入图像,Mat类的对象即可。图像的通道数可以是任意的,但是图像的深度应该是CV_8U,CV_16U,CV_16S,CV_32F,CV_64F之一。
  • 第二个参数:OutputArray类型的dst,目标图像,需要和输入图像有一样的尺寸和类型。
  • 第三个参数:InputArray类型的kernel,膨胀操作的核。当为NULL时,表示的是使用的是参考点位于中心3*3的核。

      通常使用函数getStructuringElement配合这个参数使用。getStructuringElement函数会返回指定形状和尺寸的结构元素(内核矩阵)。其中getStructuringElement函数的第一个参数表示内核的形状,一共有三种形状可以选择:

      矩形:MORPH_RECT

      交叉形:MOTPH_CROSS

      椭圆形:MOTRPH_ELLIPSE

     而getStructuringElement函数的第二个参数和第三个参数分别是内核的尺寸以及锚点的位置。

      一般在定义erode和dilate函数之前,先定义一个Mat类型的变量来得到getStructuringElement函数的返回值。对于锚点的位置,默认是Point (-1, -1),表示锚点位于中心。十字形的element形状唯一依赖于锚点的位置,而其他情况,锚点只影响了形态学运算结果的偏移。

  • 第四个参数:Point类型的anchor,锚点的位置,默认值是 (-1, -1),表示位于中心。
  • 第五个参数:int类型的iterations,迭代的次数,默认值是1。
  • 第六个参数:int类型的borderType,用于推断图像外部像素的某种边界模式,默认值是BORDER_DEFAULT。
  • 第七个参数:const Scalar&类型的borderValue,一般不管它。

代码示例:

#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>using namespace std;
using namespace cv;
int main() {Mat srcImage;srcImage = imread("/Users/dwz/Desktop/cpp/1.jpg");Mat element;element = getStructuringElement(MORPH_RECT, Size(5, 5));Mat dstImage;dilate(srcImage, dstImage, element);imwrite("dilate.jpg", dstImage);return 0;
}

输入图像:

输出:

 

 

 

 


http://chatgpt.dhexx.cn/article/iufDRSIH.shtml

相关文章

【Opencv--形态学操作】膨胀、腐蚀、开/闭操作:cv2.morphologyEx、cv2.erode、cv2.dilate

【Opencv–形态学操作】膨胀、腐蚀、开/闭操作 文章目录 【Opencv--形态学操作】膨胀、腐蚀、开/闭操作1. 介绍2. 形态学操作2.1 腐蚀和膨胀2.1.1 腐蚀2.1.2 膨胀2.1.3 代码示例 2.2 开/闭操作2.2.1 开操作2.2.2 闭操作2.2.3 代码示例 2.3 礼帽和黑帽2.3.1 礼帽运算2.3.2 黑帽运…

opencv 图像腐蚀膨胀 erode dilate

#include "iostream" #include "opencv2/opencv.hpp" using namespace std; using namespace cv;int main() {Mat img, dst, dstbin, distancetransform,rel, rel2;img imread("m3.jpg");//转为灰度图cvtColor(img, dst, COLOR_BGR2GRAY);//二…

dilate函数

dilate函数 函数的调用形式&#xff1a; void dilate ( InputArray src , OutputArray dst , InputArray kernel , Point anchor Point(-1,-1), int iterations 1, int borderType BORDER_CONSTANT, const Scalar& borderValue morphologyDefaultBorderValue() ) 函…

opencv形态学运算:腐蚀(erode)和膨胀(dilate)

形态学操作就是基于形状的一系列图像处理操作。OpenCV为进行图像的形态学变换提供了快捷、方便的函数。最基本的形态学操作有二种&#xff0c;他们是&#xff1a;膨胀与腐蚀(Dilation与Erosion)。 膨胀与腐蚀能实现多种多样的功能&#xff0c;主要如下&#xff1a; 消除噪声分…

C++ 膨胀与腐蚀(dilate、erode)

参考&#xff1a;https://blog.csdn.net/poem_qianmo/article/details/23710721 膨胀&#xff1a; 函数&#xff1a;一般只需输前三个参数&#xff1a;输入图像、输出图像、卷积内核 void dilate( InputArray src, OutputArray dst, InputArray kernel, Po…

PYTORCH 笔记 DILATE 代码解读

dilate 完整代码路径&#xff1a;vincent-leguen/DILATE: Code for our NeurIPS 2019 paper "Shape and Time Distortion Loss for Training Deep Time Series Forecasting Models" (github.com) 1 main 函数 1.1 导入库 import numpy as np import torch from da…

Opencv中的erode和dilate(腐蚀和膨胀-python实现)

文章目录 1.腐蚀原理&#xff08;1&#xff09;具体实现过程&#xff08;2&#xff09;.函数讲解 &#xff08;3&#xff09;.代码实战2.膨胀原理&#xff08;1&#xff09;具体实现过程&#xff08;2&#xff09;函数讲解&#xff08;3&#xff09;代码实现 1.腐蚀原理 &…

OpenCV-Python腐蚀膨胀函数erode、dilate使用详解

☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一、引言 在《OpenCV-Python图像处理&#xff1a;腐蚀和膨胀原理及erode、dilate函数介绍&#xff1a;https://blog.csdn.net/LaoYuanPython/article/details/109441709》介绍了图像腐蚀和膨胀的基本原理&a…

OpenCV-Python图像处理:腐蚀和膨胀原理及erode、dilate函数介绍

☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一、引言 关于图像的腐蚀和膨胀&#xff0c;网上介绍的资料非常多&#xff0c;老猿也看了很多&#xff0c;总体来说主要偏向于就使用OpenCV腐蚀和膨胀函数的应用&#xff0c;另外原理介绍的有一小部分&#…

opencv之dilate()函数

概述 dilate()函数可以对输入图像用特定结构元素进行膨胀操作,该结构元素确定膨胀操作过程中的邻域的形状,各点像素值将被替换为对应邻域上的最大值: API说明 C++ API: void cv::dilate(InputArraysrc,(原始图像:通道数不限,depth必须是CV_8U,CV_16U,CV_16S,CV_…

OpenCV-膨胀cv::dilate

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 原理 形态学是图像处理中常见的名词&#xff0c;图像处理的形态学基本属于数学形态学的范畴&#xff0c;是一门建立在格论和拓扑…

【图像处理】腐蚀(erode)和膨胀(dilate)

【图像处理】腐蚀&#xff08;erode&#xff09;和膨胀&#xff08;dilate&#xff09; 原理腐蚀&#xff08;erode&#xff09;膨胀&#xff08;dilate&#xff09; OpenCV实现C实现python实现 开运算&#xff08;Opening Operation&#xff09;闭运算&#xff08;Closing Ope…

chatgpt赋能Python-python_dilate

Python中的dilate操作&#xff1a;了解该操作及其应用 在计算机视觉领域&#xff0c;dilate操作是一种常用的图像处理技术。在Python中&#xff0c;我们可以使用OpenCV库来实现dilate操作。本文将介绍dilate操作的基本概念&#xff0c;讨论其应用及如何使用Python进行实现。 …

OPenCV膨胀函数dilate()的使用

OPenCV版本&#xff1a;4.4 IDE&#xff1a;VS2017 功能描述 简述&#xff1a;使用一个指定的核元素去膨胀一个图像&#xff0c;图像膨胀的过程类似于一个卷积的过程&#xff0c;源图像矩阵A以及结构元素B&#xff0c;B在A矩阵上依次移动&#xff0c;每个位置上B所覆盖元素的最…

OpenCV每日函数 图像过滤模块 (5) dilate膨胀函数

一、概述 通过使用特定的结构元素来扩大图像。该函数使用指定的结构元素扩展源图像,该结构元素确定取最大值的像素邻域的形状: 膨胀可以应用数次(迭代)。 在多通道图像的情况下,每个通道都是独立处理的。 膨胀: 腐蚀: 二、dilate函数 1、函数原型 cv::dilate…

生产环境屏蔽swagger

只需要在swagger的配置类上增加Profile( )注解&#xff0c;指定环境变量&#xff0c;即可屏蔽生产环境上的swagger&#xff0c;如下&#xff1a; 先使用dev环境&#xff0c;访问swagger&#xff0c;结果如下&#xff1a; 再使用test环境&#xff0c;访问swagger&#xff0c;结果…

生产环境解决跨域

1.先决条件是在开发环境中使用的是代理。 2然后在生产环境当中&#xff0c;增加一个proxy代理&#xff1b; &#xff08;1&#xff09;先下载&#xff1a;cnpm install http-proxy-middleware -D &#xff08;2&#xff09;引入&#xff1a; &#xff08;3&#xff09;使用&am…

linux环境下编译部署php生产环境

linux环境下编译部署php生产环境 版本控制 php&#xff1a;7.2.4 nginx&#xff1a;1.9.9 部分插件版本 xlswriter&#xff1a;1.3.3.2 redis:3.1.3 一、安装php 1.安装依赖(之后安装缺少的依赖都可以用yum安装) yum install -y gcc gcc-c make zlib zlib-devel pcre pcre…

用 source map 调试生产环境

当我们的应用程序部署到生产环境时&#xff0c;我们发现它与我们在开发环境时的代码不同。我们的代码在构建过程中会以各种方式进行修改和优化。 TypeScript 被转译、压缩。生成的 JavaScript 包尽可能小并且能够在浏览器中正常运行。 所有这些步骤都很有效率&#xff0c;它们…

uniapp 小程序 开发环境和生产环境

uni开发小程序 运行到开发工具 再上传 process.env.NODE_ENV 获取的值是development 一直是开发环境 用uni发行 上传到微信公众平台是生成环境 在 HBuilderX 中&#xff0c;点击“运行”编译出来的代码是开发环境&#xff0c;点击“发行”编译出来的代码是生产环境 let url;if …