OpenCV2:大学篇 形态学技术-腐蚀与膨胀操作

一.简介

图像处理中的形态学操作用于图像预处理操作(去噪 形状简化) 图像增强(骨架提取 细化  凸包  物体标记)  物体背景分割及物体形态量化等场景

二.腐蚀与膨胀操作

OpenCV 提供了 erode() 进行腐蚀操作

提供了 dilate() 进行膨胀操作

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>

int main()
{
    cv::Mat srcImage = cv::imread("a.jpg");
    if (!srcImage.data)
        return -1;

    // 灰度化
    cv::Mat srcGray;
    cvtColor(srcImage, srcGray, CV_RGB2GRAY);

    // 分通道二值化
    cv::Mat segDst, dilDst, eroDst;
    cv::inRange(srcGray, cv::Scalar(0, 0, 100), cv::Scalar(40, 30, 255), segDst);

    // 定义结构元素
    cv::Mat element = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(5, 5));

    // 膨胀操作
    cv::dilate(segDst, dilDst, element);

    // 腐蚀操作
    cv::erode(segDst, eroDst, element);

    cv::imshow("源图像", srcGray);
    cv::imshow("二值图像", segDst);
    cv::imshow("膨胀图像", dilDst);
    cv::imshow("腐蚀图像", eroDst);

    cv::waitKey(0);
    return 0;

}

原文地址:https://www.cnblogs.com/k5bg/p/11230825.html

时间: 2024-10-10 23:57:21

OpenCV2:大学篇 形态学技术-腐蚀与膨胀操作的相关文章

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

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

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

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

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

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

形态学滤波:(1)腐蚀与膨胀 (2)开运算,闭运算,形态学梯度,顶帽,黑帽

一.形态学概述 图像处理中的形态学一般指的是数学形态学. 数学形态学是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论.其基本运算包括:二值腐蚀和膨胀,二值开闭运算,骨架抽取,极限腐蚀,击中击不中变换,形态学梯度,top-hat变换,颗粒分析,流域变换,灰值腐蚀和膨胀,灰值开闭运算,灰值形态学梯度等. 简单来讲,形态学操作就是基于形状的一系列图像处理操作. 二.形态学滤波 (1)腐蚀与膨胀 膨胀和腐蚀能实现多种多样的功能,主要如下: 消除噪声: 分割(isolate)

二值形态学——腐蚀与膨胀 及 C语言代码实现

参考文献:数字图像处理(第三版) 何东健 西安电子科技大学出版社 二值形态学中的运算对象是集合, 但实际运算中, 当涉及两个集合时并不把它们看作是互相对等的. 一般设A为图像集合, S为结构元素, 数学形态学运算是用S对A进行操作. 结构元素本身也是一个图像集合, 不过通常其尺寸要比目标图像小得多. 对结构元素可指定一个原点, 将其作为结构元素参与形态学运算的参考点. 原点可包含在结构元素中, 也可不包含在结构元素中, 但运算的结果常不相同. 以下用黑点代表值为1的区域, 白点代表值为0的区域,

形态学腐蚀膨胀操作

1.腐蚀操作 增强图像的暗部(图像矩阵中数值更小的部分),滤波得到的新像素点为滤波器内最小的值,也就是用最暗的点代替滤波器内的锚点 erode(src,dst,kernel,Point,epoch_num) 参数分别为:输入图像,输出图像,滤波器,锚点(一般为Point(-1,-1)),迭代次数(默认为一次) 2.膨胀操作 增强图像的亮部(图像矩阵中数值更大的部分),滤波得到的心像素点为滤波器内的最大值,也就是用最亮的点代替滤波器内的锚点 dilate(src,dst,kernel,Point,

图像的腐蚀与膨胀

数字图像处理中的形态学 转自:http://blog.csdn.net/sunny3106/archive/2007/08/15/1745485.aspx (摘自某文献,因为贴图的数目有限制,后面的公式图片没有能够上,电脑重装后文档已经找不到了,囧) 一    引言        数学形态学是一门建立在集论基础上的学科,是几何形态学分析和描述的有力工具.数学形态学的历史可回溯到19世纪.1964年法国的Matheron和Serra在积分几何的研究成果上,将数学形态学引入图像处理领域,并研制了基于

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,