形态学处理(一)膨胀(dilate)与腐蚀(erode)
2017-09-16 20:15
483 查看
本系列文章的部分文字叙述转载@浅墨_毛星云 出品。
膨胀与腐蚀概念问题借鉴于下面的百度云链接:
腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。
在进行讲解膨胀腐蚀之前先看下原图和进行膨胀腐蚀之后的效果图。
膨胀的原图与效果图:
腐蚀的原图与效果图:
膨胀的代码如下:
//-----------------------------------【头文件包含部分】---------------------------------------
// 描述:包含程序所依赖的头文件
//----------------------------------------------------------------------------------------------
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include <iostream>
//-----------------------------------【命名空间声明部分】---------------------------------------
// 描述:包含程序所使用的命名空间
//-----------------------------------------------------------------------------------------------
using namespace std;
using namespace cv;
//-----------------------------------【main( )函数】--------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( )
{
//载入原图
Mat image = imread("1.jpg");
//创建窗口
namedWindow("【原图】膨胀操作");
namedWindow("【效果图】膨胀操作");
//显示原图
imshow("【原图】膨胀操作", image);
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat out;
//进行膨胀操作
dilate(image, out, element, Point(-1, -1),
iterations = 6,
borderType = BORDER_CONSTANT); //iterations=6,6是表示膨胀的次数,表示操作进行了6次膨胀
//显示效果图
imshow("【效果图】膨胀操作", out);
waitKey(0);
return 0;
}
膨胀的效果图见于上图。
// 描述:包含程序所依赖的头文件
//----------------------------------------------------------------------------------------------
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include <iostream>
//-----------------------------------【命名空间声明部分】---------------------------------------
// 描述:包含程序所使用的命名空间
//-----------------------------------------------------------------------------------------------
using namespace std;
using namespace cv;
//-----------------------------------【main( )函数】--------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( )
{
//载入原图
Matimage = imread("1.jpg");
//创建窗口
namedWindow("【原图】腐蚀操作");
namedWindow("【效果图】腐蚀操作");
//显示原图
imshow("【原图】腐蚀操作", image);
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat out;
//进行腐蚀操作
erode(image, out, element, Point(-1, -1),
iterations = 6,
borderType = BORDER_CONSTANT); //此操作共进行了6次腐蚀
//显示效果图
imshow("【效果图】腐蚀操作", out);
waitKey(0);
return 0;
}
腐蚀的效果图见于上图。
膨胀与腐蚀概念问题借鉴于下面的百度云链接:
链接: http://pan.baidu.com/s/1i37nXSL 密码: 3xnd
腐蚀和膨胀是对白色部分(高亮部分)而言的,不是黑色部分。膨胀就是图像中的高亮部分进行膨胀,“领域扩张”,效果图拥有比原图更大的高亮区域。腐蚀就是原图中的高亮部分被腐蚀,“领域被蚕食”,效果图拥有比原图更小的高亮区域。
在进行讲解膨胀腐蚀之前先看下原图和进行膨胀腐蚀之后的效果图。
膨胀的原图与效果图:
腐蚀的原图与效果图:
一,膨胀
此图膨胀的目的是去除白色短袖上面的污渍。膨胀的代码如下:
//-----------------------------------【头文件包含部分】---------------------------------------
// 描述:包含程序所依赖的头文件
//----------------------------------------------------------------------------------------------
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include <iostream>
//-----------------------------------【命名空间声明部分】---------------------------------------
// 描述:包含程序所使用的命名空间
//-----------------------------------------------------------------------------------------------
using namespace std;
using namespace cv;
//-----------------------------------【main( )函数】--------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( )
{
//载入原图
Mat image = imread("1.jpg");
//创建窗口
namedWindow("【原图】膨胀操作");
namedWindow("【效果图】膨胀操作");
//显示原图
imshow("【原图】膨胀操作", image);
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat out;
//进行膨胀操作
dilate(image, out, element, Point(-1, -1),
iterations = 6,
borderType = BORDER_CONSTANT); //iterations=6,6是表示膨胀的次数,表示操作进行了6次膨胀
//显示效果图
imshow("【效果图】膨胀操作", out);
waitKey(0);
return 0;
}
膨胀的效果图见于上图。
(二)腐蚀
//-----------------------------------【头文件包含部分】---------------------------------------// 描述:包含程序所依赖的头文件
//----------------------------------------------------------------------------------------------
#include <opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
#include <iostream>
//-----------------------------------【命名空间声明部分】---------------------------------------
// 描述:包含程序所使用的命名空间
//-----------------------------------------------------------------------------------------------
using namespace std;
using namespace cv;
//-----------------------------------【main( )函数】--------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main( )
{
//载入原图
Matimage = imread("1.jpg");
//创建窗口
namedWindow("【原图】腐蚀操作");
namedWindow("【效果图】腐蚀操作");
//显示原图
imshow("【原图】腐蚀操作", image);
//获取自定义核
Mat element = getStructuringElement(MORPH_RECT, Size(15, 15));
Mat out;
//进行腐蚀操作
erode(image, out, element, Point(-1, -1),
iterations = 6,
borderType = BORDER_CONSTANT); //此操作共进行了6次腐蚀
//显示效果图
imshow("【效果图】腐蚀操作", out);
waitKey(0);
return 0;
}
腐蚀的效果图见于上图。
相关文章推荐
- OpenCV1.0图像处理形态学操作腐蚀Erode与膨胀Dilate
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate
- OpenCV图像处理形态学操作腐蚀Erode与膨胀Dilate
- OpenCV1.0图像处理形态学操作腐蚀Erode与膨胀Dilate
- 笔记:形态学操作-----腐蚀Erode && 膨胀 Dilate
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 图像腐蚀erode与膨胀dilate综合示例
- 学习【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀----思维导图笔记
- 【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 6基于opencv的形态学处理(一)腐蚀_膨胀
- Javascript图像处理―图像形态学(膨胀与腐蚀)
- [转]【OpenCV入门教程之十】 形态学图像处理(一):膨胀与腐蚀
- 第5章/图像形态学-膨胀(dilate)和腐蚀(erode)
- opencv 图像处理 形态学操作 腐蚀 膨胀 开闭运算 阈值二值化 图像卷积 图像金字塔 Sobel算子 Laplacian 算子 candy边缘检测 霍夫变换 直方图
- 形态学处理:膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽
- 形态学处理——腐蚀和膨胀
- 图像的腐蚀(erode)和膨胀(dilate) 开运算以及闭运算------理论知识及其对应函数
- 形态学图像处理之腐蚀与膨胀
- 腐蚀膨胀等形态学处理c代码