opencv —— erode、dilate 腐蚀与膨胀

腐蚀与膨胀是形态学滤波。其中,腐蚀是最小值滤波,膨胀是最大值滤波,即分别选取内核中的最小值与最大值赋值给锚点。若内核为 N×1 或 1×N 形状,可用于横纵方向直线检测。

膨胀: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());

  • src,输入图像,即原图像,填 Mat 类的对象即可。
  • dst,目标图像,需要和原图片有一样的尺寸和类型。
  • kernel,膨胀操作的核。当为 NULL 时,表示的是使用参考点位于中心,大小 3×3 的核。

一般用函数 getStructuringElement 配合这个参数使用。

例如:Mat kernel = getStructuringElement(MORPH_RECT, Size(3, 3));

Mat getStructuringElement(int shape, Size ksize, Point anchor = Point(-1, -1));

    • shape,矩形:MORPH_RECT

交叉形:MORPH_CROSS

椭圆形:MORPH_ELLIPSE

    • ksize,内核的尺寸。
    • anchor,锚点的位置,默认位于中心。
  • anchor,锚点的位置,默认位于中心。
  • iterations 迭代使用 dilate() 的次数,默认值为 1。
  • borderType,边界拓展的方法。
  • borderValue,当边界为常数时的边界值,有默认值,一般不用管。

腐蚀:erode 函数

void erode(InputArray src, OutputArray dst, InputArray kernel, Point anchor = Point(-1, -1), int iterations = 1, int borderType = BORDER_CONSTANT, const Scalar& borderValue = morphologyDefaultBorderValue());

  • 成员函数意义几乎和 dilate 一致

原文地址:https://www.cnblogs.com/bjxqmy/p/12295356.html

时间: 2024-11-02 04:26:10

opencv —— erode、dilate 腐蚀与膨胀的相关文章

opencv中的腐蚀与膨胀(转)

图像腐蚀和图像膨胀是图像中两种最基本形态学操作. void erode( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue() ); void dilate( const Ma

OpenCV:图像的腐蚀和膨胀

图像的腐蚀和膨胀实际上是利用卷积进行计算,首先导包: import numpy as np import cv2 import matplotlib.pyplot as plt def show(image): plt.imshow(image) plt.axis('off') plt.show() def imread(image): image=cv2.imread(image) image=cv2.cvtColor(image,cv2.COLOR_BGR2RGB) return image

OpenCV学习笔记——腐蚀与膨胀

1.膨胀 此操作将图像 与任意形状的内核 (),通常为正方形或圆形,进行卷积. 内核 有一个可定义的 锚点, 通常定义为内核中心点. 进行膨胀操作时,将内核 划过图像,将内核 覆盖区域的最大相素值提取,并代替锚点位置的相素.显然,这一最大化操作将会导致图像中的亮区开始”扩展” (因此有了术语膨胀 dilation ). erode src: 原图像 erosion_dst: 输出图像 element: 腐蚀操作的内核. 指定形状:getStructuringElement 矩形: MORPH_R

Opencv3编程入门笔记(4)腐蚀、膨胀、开闭运算、漫水填充、金字塔、阈值化、霍夫变换

19      腐蚀erode.膨胀dilate 腐蚀和膨胀是针对图像中的白色部分(高亮部分)而言的,不是黑色的.除了输入输出图像外,还需传入模板算子element,opencv中有三种可以选择:矩形MORPH_RECT,交叉形MORPH_CROSS,椭圆形MORPH_ELLIPSE.Matlab中会有更多一点的模板. 例如: Mat element = getStructuringElement(MORPH_RECT,Size(15,15)); erode(srcImage,dstImage,

opencv2函数学习之erode、dilate:图像腐蚀和膨胀

图像腐蚀和图像膨胀是图像中两种最基本形态学操作. void erode( const Mat& src, Mat& dst, const Mat& element,Point anchor=Point(-1,-1), int iterations=1,int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue() ); void dilate( const Ma

OpenCV图像处理篇之腐蚀与膨胀

转载请注明出处:http://xiahouzuoxin.github.io/notes 腐蚀与膨胀 腐蚀和膨胀是图像的形态学处理中最基本的操作,之后遇见的开操作和闭操作都是腐蚀和膨胀操作的结合运算.腐蚀和膨胀的应用非常广泛,而且效果还很好: 腐蚀可以分割(isolate)独立的图像元素,膨胀用于连接(join)相邻的元素,这也是腐蚀和膨胀后图像最直观的展现 去噪:通过低尺寸结构元素的腐蚀操作很容易去掉分散的椒盐噪声点 图像轮廓提取:腐蚀操作 图像分割 等等...(在文后给出一则简单实用膨胀操作提

opencv:形态学操作-腐蚀与膨胀

#include <opencv2/opencv.hpp> #include <iostream> using namespace cv; using namespace std; int main(int argc, char** argv) { Mat src = imread("f:/images/shuang001.jpg"); Mat gray, binary; cvtColor(src, gray, COLOR_BGR2GRAY); threshol

OpenCV学习 7:图像形态学:腐蚀、膨胀

原创文章,欢迎转载,转载请注明出处 首先什么是图像形态学?额,这个抄下百度到的答案.基本思想:    用具有一定形态的结构元素去度量和提取图像中的对应形状已达到对图像分析和识别的目的,形态学图像处理表现为一种领域运算方式(这个和前面的模糊运算是一样的运算方式),效果取决于结构元素(就是前面smooth里面的核)的大小,内容以及逻辑运算的性质.看了这些定义是不是很晕,对很晕...我比较关心的是它的用途和怎么计算.    用途是:简化图像数据,保持他们基本的形状特性,并出去不相干的结构.    基本

Qt 5.3 下OpenCV 2.4.11 开发(13)腐蚀与膨胀

默认的腐蚀与膨胀操作: #include <QCoreApplication> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; int main() { Mat src = imread("lena.jpg", 0); Mat