Opencv对图像做腐蚀和膨胀处理的结果

在数字图像处理中,图像的形态学变换占有很重要的地位。基本的形态转换就是膨胀和腐蚀,它们能实现多种功能:例如消除噪声、分割出独立的图像元素以及在图像中连接相邻的元素。当然形态学也常备用于求出图像的梯度。

一. 关键函数介绍

下面就介绍OpenCV中对图像进行二值化的关键函数

cvErode()

函数功能:对图像进行腐蚀

函数原型:void
cvErode( const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1 );

函数说明:

src:输入图像.

dst:输出图像.

element:用于腐蚀的结构元素。若为 NULL, 则使用 3×3 长方形的结构元素

iterations:腐蚀的次数

cvDilate()

函数功能:对图像进行膨胀

函数原型:void cvDilate( const CvArr* src, CvArr* dst, IplConvKernel*
element=NULL, int iterations=1 );

函数说明:

src输入图像.

dst输出图像.

element结构元素。若为 NULL, 则使用默认的3×3 长方形,锚点在中间的结构元素,进行膨胀运算

iterations膨胀的次数

二. 示例程序代码

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

const char *pstrSrcWindowsTitle = "原图";
const char *pstrDestWindowsTitle_1 = "对原图腐蚀之后";
const char *pstrDestWindowsTitle_2 = "对原图膨胀之后";
const char *pstrDestWindowsTitle_3 = "对腐蚀过的图片作膨胀";

int main(int argc, char *argv[]){
	IplImage * src_image = cvLoadImage(argv[1]);//加载图片
	cvNamedWindow(pstrDestWindowsTitle_1, CV_WINDOW_AUTOSIZE);//创建窗口用于显示
	cvNamedWindow(pstrSrcWindowsTitle, CV_WINDOW_AUTOSIZE);
	cvShowImage(pstrSrcWindowsTitle, src_image);//显示原图

	//创建两个图片空间用于存放变换过的图片
	IplImage * out_image = cvCreateImage(cvGetSize(src_image),
		IPL_DEPTH_8U,
		3);

	IplImage * out_image_2 = cvCreateImage(cvGetSize(src_image),
		IPL_DEPTH_8U,
		3);

	cvDilate(src_image, out_image, NULL, 2);//膨胀处理,并显示
	cvShowImage(pstrDestWindowsTitle_2, out_image);

	cvErode(src_image, out_image,NULL,2);//腐蚀处理,并显示
	cvShowImage(pstrDestWindowsTitle_1, out_image);

	cvDilate(out_image, out_image_2, NULL, 2);//对腐蚀过的图像再膨胀
	cvShowImage(pstrDestWindowsTitle_3, out_image_2);

	waitKey(0);
	return 0;
}

时间: 2024-08-12 01:00:41

Opencv对图像做腐蚀和膨胀处理的结果的相关文章

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

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

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

图像的腐蚀与膨胀

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

OpenCV对图像做简单处理——平滑滤波

首先必须知道几个关键函数--cvLoadImage,cvCreateImage和cvSmooth. 一.主要函数的简单介绍 1.1 cvLoadImage 函数功能:把图片加载到内存中 函数原型:IplImage* cvLoadImage( const char* filename, int flags=CV_LOAD_IMAGE_COLOR ); 函数说明: filename :要被读入的文件的文件名(包括后缀): flags :指定读入图像的颜色和深度: 指定的颜色可以将输入的图片转为3通道

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, co

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对图像做边缘检测——canny算子

图像的边缘检测的原理是检测出图像中所有灰度值变化较大的点,而且这些点连接起来就构成了若干线条,这些线条就可以称为图像的边缘. Canny边缘检测算子是John F. Canny于 1986 年开发出来的一个多级边缘检测算法.Canny 边缘检测的数学原理和算法实现这里就不再了,有兴趣的读者可以查阅专业书籍,本文主要介绍如何在OpenCV中对图像进行Canny 边缘检测,下面就来看看这个函数的原型. 一. 主要函数 1.1 cvCanny 函数功能:采用Canny方法对图像进行边缘检测 函数原型:

图像腐蚀、膨胀、基本原理和程序实现

图像的腐蚀与膨胀 一.原理: ⑴ 图像形态学处理的概念 数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边界.骨架以及凸壳,还包括用于预处理或后处理的形态学过滤.细化和修剪等.图像形态学处理中我们感兴趣的主要是二值图像. ⑵ 二值图像的逻辑运算 逻辑运算尽管本质上很简单,但对于实现以形态学为基础额图像处理算法是一种有力的补充手段.在图像处理中用到的主要逻辑运算是:与.或和非(求补),它们可以互相组合形成其他逻辑运算. ⑶ 膨胀和腐蚀 膨胀

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

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