Opencv 基础学习二(对图片进行腐蚀处理、膨胀处理)
2017-11-21 23:54
726 查看
形态学概述:(摘自 OpenCV 3入门编程)
形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构。而我们图像处理中指的形态学,往往表示的是数学形态学。下面一起来了解数学形态学的概念。
数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等。
简单来讲,形态学操作就是基于形状的一系列图像处理操作。OpenCV为进行图像的形态学变换提供了快捷、方便的函数。最基本的形态学操作有两种,他们是:膨胀(dilate)与腐蚀(eroad)
膨胀与腐蚀能实现多种多样的功能,主要如下:
1.消除噪声
2.分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素。
3.寻找图像中的明显的极大值区域或极小值区域
4.求出图像的梯度
在进行腐蚀和膨胀的讲解之前,首先需要注意,腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。
现在直接上代码:
腐蚀:
膨胀
注意:
OpenCV提供了一个函数getStructuringElement,可以获取常用的结构元素的形状:矩形(包括线形)、椭圆(包括圆形)及十字形。
MORPH_RECT, MORPH_ELLIPSE, MORPH_CROSS
形态学(morphology)一词通常表示生物学的一个分支,该分支主要研究动植物的形态和结构。而我们图像处理中指的形态学,往往表示的是数学形态学。下面一起来了解数学形态学的概念。
数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理的基本理论。其基本的运算包括:二值腐蚀和膨胀、二值开闭运算、骨架抽取、极限腐蚀、击中击不中变换、形态学梯度、Top-hat变换、颗粒分析、流域变换、灰值腐蚀和膨胀、灰值开闭运算、灰值形态学梯度等。
简单来讲,形态学操作就是基于形状的一系列图像处理操作。OpenCV为进行图像的形态学变换提供了快捷、方便的函数。最基本的形态学操作有两种,他们是:膨胀(dilate)与腐蚀(eroad)
膨胀与腐蚀能实现多种多样的功能,主要如下:
1.消除噪声
2.分割(isolate)出独立的图像元素,在图像中连接(join)相邻的元素。
3.寻找图像中的明显的极大值区域或极小值区域
4.求出图像的梯度
在进行腐蚀和膨胀的讲解之前,首先需要注意,腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。
现在直接上代码:
腐蚀:
// 对图片进行腐蚀处理 + (UIImage *)ImageToMPRPHView:(UIImage *)image { //实现功能 //第一步:将iOS图片->OpenCV图片(Mat矩阵) Mat mat_image_src; UIImageToMat(image, mat_image_src); Mat erodeElement = getStructuringElement(cv::MORPH_RECT, cv::Size(20,20)); Mat mat_image_dst; erode(mat_image_src, mat_image_dst, erodeElement); return MatToUIImage(mat_image_dst); }
膨胀
// 对图片进行膨胀处理 + (UIImage *)ImageToDilateView:(UIImage *)image { //实现功能 //第一步:将iOS图片->OpenCV图片(Mat矩阵) Mat mat_image_src; UIImageToMat(image, mat_image_src); Mat erodeElement = getStructuringElement(cv::MORPH_RECT, cv::Size(20,20)); Mat mat_image_dst; dilate(mat_image_src, mat_image_dst, erodeElement); return MatToUIImage(mat_image_dst); }
注意:
OpenCV提供了一个函数getStructuringElement,可以获取常用的结构元素的形状:矩形(包括线形)、椭圆(包括圆形)及十字形。
MORPH_RECT, MORPH_ELLIPSE, MORPH_CROSS
相关文章推荐
- iOS-Opencv 基础学习四(对图片进行图像模糊处理blur、边缘处理Canny)
- Opencv3 python学习1——图片基础处理
- 【OpenCV学习】Kmean均值聚类对图片进行减色处理
- 【OpenCV学习】Kmean均值聚类对图片进行减色处理
- opencv python 学习第三天 图片腐蚀和膨胀
- opencv 图片基本处理(灰度化,反色,二值化,膨胀腐蚀以及ROI的copy等)
- 【OpenCV学习】Kmean均值聚类对图片进行减色处理
- 学习【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀----思维导图笔记
- opencv学习笔记第五章:基于形态学运算的图像变换(1)形态学运算进行腐蚀和膨胀
- 【OpenCV学习】Kmean均值聚类对图片进行减色处理
- 【OpenCV学习】Kmean均值聚类对图片进行减色处理
- OpenCV&图像处理_3:以腐蚀[eroding]和膨胀[dilating]为基础的形态学操作和图像金字塔[image pyramids]
- opencv 学习第二天 学习opencv(中文版)对一幅图片进行canny边缘检测
- OpenCV学习(10) 图像的腐蚀与膨胀(1)
- [学习笔记]形态学图像处理-膨胀与腐蚀
- Opencv学习笔记:膨胀与腐蚀
- opencv 学习第二天 学习opencv(中文版)对一幅图片进行高斯平滑并缩小一半
- OpenCV 2 学习笔记(22): 腐蚀与膨胀
- 学习Opencv2之载入一幅图像并进行平滑处理
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate