转自:http://blog.sina.com.cn/s/blog_b1cd5d330101pmwi.html

strel——structuring element 运用各种形状和大小构造元素,基本语法为

SE = strel(shape, parameters)

shape 是指定希望形状的字符串,parameters 是指定形状信息的一系列参数

SE = strel('arbitrary', NHOOD)

创建一个任意形状的结构元素,NHOOD是由0和1组成的矩阵,用于指定形状可以用se=strel(NHOOD)简化

SE = strel('arbitrary', NHOOD, HEIGHT)

HEIGHT是一个与NHOOD同样大小的矩阵,包含与相关的NHOOD中非零元素的高度值

SE = strel('ball', R, H, N)

creates a nonflat, ball-shaped structuring element (actually an ellipsoid) whose radius in the X-Y plane is R and whose height is H.

When N is greater than 0, the ball-shaped structuring element is approximated by a sequence of N nonflat, line-shaped structuring elements. When N equals 0, no approximation is used, and the structuring element members consist of all pixels whose centers are
no greater than R away from the origin.

SE = strel('diamond', R)

创建一个平坦的菱形结构元素,R是从结构元素原点到菱形最远的距离

SE = strel('disk', R, N)

创建一个平坦的圆形结构元素,半径为R。

N必须是0,4,6 或8。当N比0大时,圆形结构元素被N个周期线型( periodic-line )结构元素序列近似,当N等于0时,没有近似,结构元素包含所有的小于从原点到R的像素。

se=strel('disk',5,0)

     0     0     0     0     0     1     0     0     0     0     0

     0     0     1     1     1     1     1     1     1     0     0

     0     1     1     1     1     1     1     1     1     1     0

     0     1     1     1     1     1     1     1     1     1     0

     0     1     1     1     1     1     1     1     1     1     0

     1     1     1     1     1     1     1     1     1     1     1

     0     1     1     1     1     1     1     1     1     1     0

     0     1     1     1     1     1     1     1     1     1     0

     0     1     1     1     1     1     1     1     1     1     0

     0     0     1     1     1     1     1     1     1     0     0

     0     0     0     0     0     1     0     0     0     0     0





 se=strel('disk',5,4)

     0     0     1     1     1     1     1     0     0

     0     1     1     1     1     1     1     1     0

     1     1     1     1     1     1     1     1     1

     1     1     1     1     1     1     1     1     1

     1     1     1     1     1     1     1     1     1

     1     1     1     1     1     1     1     1     1

     1     1     1     1     1     1     1     1     1

     0     1     1     1     1     1     1     1     0

     0     0     1     1     1     1     1     0     0





SE = strel('line', LEN, DEG)

创建一个平坦的线型结构,LEN长度,DEG角度

SE = strel('octagon', R)

创建一个平坦的八边形结构元素,R是从结构元素原点到八边形边的距离,沿水平轴和垂直轴的度量,R必须是3的非负倍数

SE = strel('pair', OFFSET)

创建一个包含两个成员的平坦结构元素,一个成员在原点,另一个成员由向量OFFSET表示,该向量必须是一个两元素的整数向量

SE = strel('periodicline', P, V)

创建一个包含有2*P+1个成员的平坦元素,其中V是一个两元素向量,它包含有整数值的行和列的偏移,一个元素在原点,另一个位于

1*V, -1*V, 2*V, -2*V, ..., P*V, -P*V.

se=strel('periodicline',2,[1 -2])

    0     0     0     0     0     0     0     0     1

     0     0     0     0     0     0     1     0     0

     0     0     0     0     1     0     0     0     0

     0     0     1     0     0     0     0     0     0

     1     0     0     0     0     0     0     0     0





SE = strel('rectangle', MN)

创建一个平坦的矩形结构,MN指定大小





SE = strel('square', W)

创建一个方形的结构元素,边长为N个像素





------------------------------------------------------

Matlab中函数strel在操作结构元素应用,用于膨胀腐蚀及开闭运算等操作的结构元素对象

具体用法:SE = strel(shape,parameters)

创建由指定形状shape对应的结构元素。其中shape的种类有

arbitrary'

'pair'

'diamond'

'periodicline'

'disk'

'rectangle'

'line'

'square'

'octagon

参数parameters一般控制SE的大小。





实验现象:

SE = strel('diamond', 3)

 

SE =

 

Flat STREL object containing 25 neighbors.

Decomposition: 3 STREL objects containing a total of 13 neighbors





Neighborhood:

     0     0     0     1     0     0     0

     0     0     1     1     1     0     0

     0     1     1     1     1     1     0

     1     1     1     1     1     1     1

     0     1     1     1     1     1     0

     0     0     1     1     1     0     0

     0     0     0     1     0     0     0





 

>> se1 = strel('square',6)

 

se1 =

 

Flat STREL object containing 36 neighbors.

Decomposition: 2 STREL objects containing a total of 12 neighbors





Neighborhood:

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1

     1     1     1     1     1     1





 

>> se2 = strel('line',10,45)

 

se2 =

 

Flat STREL object containing 7 neighbors.





Neighborhood:

     0     0     0     0     0     0     1

     0     0     0     0     0     1     0

     0     0     0     0     1     0     0

     0     0     0     1     0     0     0

     0     0     1     0     0     0     0

     0     1     0     0     0     0     0

     1     0     0     0     0     0     0

matlab形态学图像处理之strel函数的更多相关文章

  1. 使用MATLAB对图像处理的几种方法(下)

     试验报告 一.试验原理: 图像点处理是图像处理系列的基础,主要用于让我们熟悉Matlab图像处理的编程环境.灰度线性变换和灰度拉伸是对像素灰度值的变换操作,直方图是对像素灰度值的统计,直方图均衡是对 ...

  2. 使用MATLAB对图像处理的几种方法(上)

    实验一图像的滤波处理 一.实验目的 使用MATLAB处理图像,掌握均值滤波器和加权均值滤波器的使用,对比两种滤波器对图像处理结果及系统自带函数和自定义函数性能的比较,体会不同大小的掩模对图像细节的影响 ...

  3. matlab中图像处理常见用法

    一. 读写图像文件 1. imread imread函数用于读入各种图像文件,如:a=imread('e:/w01.tif') 注:计算机E盘上要有w01相应的.tif文件. 2. imwrite i ...

  4. Matlab计算机视觉/图像处理工具箱推荐

    Matlab计算机视觉/图像处理工具箱推荐 转载http://cvnote.info/matlab-cv-ip-toolbox/ 计算机视觉/图像处理研究中经常要用到Matlab,虽然其自带了图像处理 ...

  5. 学习 opencv---(10)形态学图像处理(2):开运算,闭运算,形态学梯度,顶帽,黒帽合辑

    上篇文章中,我们重点了解了腐蚀和膨胀这两种最基本的形态学操作,而运用这两个基本操作,我们可以实现更高级的形态学变换. 所以,本文的主角是OpenCV中的morphologyEx函数,它利用基本的膨胀和 ...

  6. matlab 对图像操作的函数概览

    转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...

  7. 【OpenCV新手教程之十一】 形态学图像处理(二):开运算、闭运算、形态学梯度、顶帽、黑帽合辑

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/23184547 作者:毛星云(浅墨) ...

  8. MATLAB 图形图像处理

    theme: MATLAB author: pprp date: 2018/2/2 --- MATLAB 图形图像处理 二维绘图命令 plot 线性空间 plot(t,[x1,x2,x3]) : 在同 ...

  9. MATLAB数字图像处理(二)图像增强

    1         图像增强 1.1            直方图均衡化 对于灰度图像,可以使用直方图均衡化的方法使得原图像的灰度直方图修正为均匀的直方图. 代码如下: I2=histeq(I1); ...

随机推荐

  1. redis写磁盘报错Cannot allocate memory

    查看 Redis 日志发现系统在频繁报错: [1821] 10 Nov 09:59:04.086 # Can't save in background: fork: Cannot allocate m ...

  2. java eclipse使用不同jdk版本

    因为开发需要,两个工程分别需要使用jdk1.6(elipse indigo)和jdk1.8(eclipse neon).因为两个eclipse对于jdk版本的要求不同,若只在环境变量中配置jdk版本, ...

  3. Android_YouthArea之ApeendTextView

    这次给我自己的项目打个广告:http://sj.qq.com/myapp/detail.htm?apkName=com.youthcommunity 这款APP 不同于SoHOT是积极的,是年轻人的信 ...

  4. C - The C Answer (2nd Edition) - Exercise 1-1

    /* Run the "hello, world" program on your system. Experiment with leaving out parts of the ...

  5. Swift 学习笔记 (解决Swift闭包中循环引用的三种方法)

    话不多说 直接上代码 class SmartAirConditioner { var temperature:Int = //类引用了函数 var temperatureChange:((Int)-& ...

  6. 【总结】图论小总结【题解】P1330封锁阳关大学

    [题解][总结]P1330 封锁阳光大学 &&图论小总结 这道题其实有一点点难度,不过我能经过思考做出来说明还是没有普及组\(D1T1\)难度的. 考虑一条边的两边要有且仅有一个点被选 ...

  7. 辛星跟您玩转vim第四节之操作文本内容

    首先值得一提的是.我的vim教程pdf版本号已经写完了.大家能够去下载,这里是csdn的下载地址:csdn下载,假设左边的下载地址挂掉了,也能够自行在浏览器以下输入例如以下地址进行下载:http:// ...

  8. Python正则表达式Cheat sheet

    1.来源: Python Regular Expressions Cheat Sheet 2.内容: Special Characters ^ | Matches the expression to ...

  9. DOM的介绍

    一 . DOM 介绍 什么是DOM DOM:文档对象模型.DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构.目的其实就是为了能让js操作html元素而制定的一个规范. DOM就是由节 ...

  10. P3231 [HNOI2013]消毒

    P3231 [HNOI2013]消毒 二维覆盖我们已经很熟悉了 扩展到三维,枚举其中较小的一维,这里定义为$a$ 以$a$为关键字状压,$1$表示该面全选 剩下的面和二维覆盖一样二分图匹配 如果还没接 ...