Matlab数学形态学运算
数学形态学运算
语法格式:
BW2 = bwmorph(BW,operation)
对二值图像进行指定的形态学处理。
BW2 = bwmorph(BW,operation,n)
对二值图像进行n次指定的形态学处理。 n可以是Inf(无穷大),这意味着将一直对该图像做同样的形态学处理直到图像不再发生变化。
operation是一个字符串, 用于指定进行的形态学处理类型, operation可以为以下值:
'bothat':进行“bottom hat”形态学运算,即返回源图像减去闭运算的图像;
'branchpoints':找到骨架中的分支点;
'bridge':进行像素连接操作;
'clean':去除图像中孤立的亮点,比如, 一个像素点, 像素值为1,其周围像素的像素值全为0,则这个孤立的亮点将被去除;
'close':进行形态学闭运算(即先腐蚀后膨胀);
'diag': 采用对角线填充, 去除八邻域的背景;
'dilate': 使用结构元素ones(3)对图像进行膨胀运算;
'endpoints':找到骨架中的结束点;
'erode':使用结构元素ones(3)对图像进行腐蚀运算;
'fill':填充孤立的黑点, 比如3*3的矩阵, 除了中间元素为0外,其余元素全部为1,则这个0将被填充为1;
'hbreak':断开图像中的H型连接;
'majority':如果一个像素的8邻域中有等于或超过5个像素点的像素值为1, 则将该点像素值置1;
'open':进行形态学开运算(即先膨胀后腐蚀);
'remove':如果一个像素点的4邻域都为1, 则该像素点将被置0;该选项将导致边界像素上的1被保留下来;
'skel':在这里n = Inf,骨架提取但保持图像中物体不发生断裂;不改变图像欧拉数;
'spur':去除小的分支, 或引用电学术语“毛刺”;
'thicken':在这里n = Inf, 通过在边界上添加像素达到加粗物体轮廓的目的;
'thin':在这里n = Inf,进行细化操作;
'tophat':进行“top hat”形态学运算, 返回源图像减去开运算的图像;
腐蚀膨胀
二值图像的形态学处理的基本运算有腐蚀、膨胀、开运算、闭运算,击中与击不中、骨架抽取等。
图像膨胀:
可以使用imdilate函数进行图像膨胀,imdilate函数需要两个基本输入参数,即待处理的输入图像和结构元素对象。结构元素对象可以是strel函数返回的对象,也可以是一个自己定义的表示结构元素邻域的二进制矩阵。此外,imdilate还可以接受两个可选参数:PADOPT(padopt) ——影响输出图片的大小、PACKOPT(packopt).——说明输入图像是否为打包的二值图像(二进制图像)。
BW=zeros(9,10);
BW(4:6,4:7) =1;
SE=strel('square',3); %使用一个3×3的正方形结构元素对象对创建的图像进行膨胀
BW2=imdilate(BW,SE); %将图像BW和结构元素SE传递给imdilate函数
图像腐蚀:
BW2=imerode(BW1,SE);
基于腐蚀和膨胀的形态操作函数如下:
bwhitmiss 图像逻辑"与"操作,该函数使用一个结构元素对图像进行腐蚀操作后,再使用第二个结构元素对图像进行腐蚀操作
imbothat 从原始图像中减去经过形态关闭后的图像,该函数可用来寻找图像中的灰度槽
imclose 闭合操作.首先对图像进行膨胀,然后再对膨胀后的图像进行腐蚀,两个操作使用同样的结构元素
imopen 开启操作,首先对图像进行腐蚀,然后再对腐蚀后的图像进行膨胀,两个操作使用同样的结构元素
imtophat 从原始图像中减去形态开启后的图像,可以用来增强图像的对比度
函数【bwareaopen】──删除小面积对象
格式:BW2 = bwareaopen(BW,P,conn)
作用:删除二值图像BW中面积小于P的对象,默认情况下使用8邻域。
算法:
(1)Determine the connected components.
L = bwlabeln(BW, conn);
(2)Compute the area of each component.
S = regionprops(L, 'Area');
(3)Remove small objects.
bw2 = ismember(L, find([S.Area] >= P));
函数【imfiter】——对任意类型数组或多维图像进行滤波
用法:B = imfilter(A,H)
B = imfilter(A,H,option1,option2,…)
或写作g = imfilter(f, w, filtering_mode, boundary_options, size_options)
其中,f为输入图像,w为滤波掩模,g为滤波后图像。filtering_mode用于指定在滤波过程中是使用“相关”还是“卷积”。boundary_options用于处理边界充零问题,边界的大小由滤波器的大小确定。具体参数选项见下表:
选项 | 描述 | |
filtering_mode | ‘corr’ | 通过使用相关来完成,该值为默认。 |
‘conv’ | 通过使用卷积来完成 | |
boundary_options | ‘X’ |
输入图像的边界通过用值X(无引号)来填充扩展 其默认值为0 |
‘replicate’ | 图像大小通过复制外边界的值来扩展 | |
‘symmetric’ | 图像大小通过镜像反射其边界来扩展 | |
‘circular’ | 图像大小通过将图像看成是一个二维周期函数的一个周期来扩展 | |
size_options | ‘full’ | 输出图像的大小与被扩展图像的大小相同 |
‘same’ | 输出图像的大小与输入图像的大小相同。这可通过将滤波掩模的中心点的偏移限制到原图像中包含的点来实现,该值为默认值。 |
函数【strel】——创建膨胀腐蚀及开闭运算等操作的结构元素对象
用法:SE = strel(shape,parameters)
创建由指定形状shape对应的结构元素。其中shape的种类有
‘arbitrary'
'pair'
'diamond'
'periodicline'
'disk'
'rectangle'
'line'
'square'
'octagon’
参数parameters一般控制SE的大小。
例子:
se1 = strel('square',6)
% 创建6*6的正方形
se2 = strel('line',10,45)
% 创建直线长度10,角度45
se3 = strel('disk',15)
% 创建圆盘半径15
se4 = strel('ball',15,5)
% 创建椭圆体,半径15,高度5
Matlab数学形态学运算相关推荐
- matlab 数学形态学,数学形态学matlab程序
数字图像处理及MATLAB实现_数学_自然科学_专业资料....形态学图像处理 术语 ? 1. 集合论术语(Definition)...? 腐蚀可编程过程:第一步:足一个正常的腐蚀. 第...... ...
- matlab求xk符号解,matlab符号运算习题
matlab符号运算习题 第 3 讲 MATLAB 符号计算符号计算则是可以对未赋值的符号对象(可以是常数.变量.表达式)进行运算和处理.MATLAB 具有符号数学工具箱(Symbolic Math ...
- Matlab符号运算总结
matlab符号运算功能强大,在帮一师兄校对矩阵推导的时候使用到.暂时没有仔细研究,做一个标记. http://blog.chinaunix.net/uid-20559667-id-1924747.h ...
- matlab多项式加法运算,matlab多项式运算与代数方程求解解析.ppt
* 多项式运算与代数方程求解 数学软件 Matlab Matlab基础及应用 * 多项式转化为符号表达式:poly2sym 四则运算:conv.deconv 导数与积分:ployder.polyint ...
- 第十一章:MATLAB:符号运算(符号与数值,符号矩阵)
第十一章:MATLAB符号运算 11.1. 符号与数值 11.1.1. 符号与数值间的转换 实例-数值与符号转换 11.1.2. 符号表达式与数值表达式的精度设置 实例-魔方矩阵的数值解 实例-稀疏矩 ...
- 水仙花数 matlab,matlab向量运算解决水仙花数问题
MATLAB入门教程 * 1 * 下一篇文章 1.MATLAB的基本知识 1-1.基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter ...
- Matlab—微积分运算
Matlab-微积分运算 1. 符号方法 1.1 极限 1.2 求导 1.3 偏导 1.4 积分 2. 数值方法 2.1 梯度 2.2 定积分 2.3 高精度数值积分 2.4 重积分 2.5 计算椭圆 ...
- matlab关系运算
MATLAB关系运算 MATLAB关系运算符对数组的元素进行设置,将元素设置为逻辑1(真)的关系是真实的和逻辑0(假),它是两个阵列,可以返回一个相同大小的逻辑阵列间的比较. MATLAB关系运算符标 ...
- matlab实验二数值运算报告,MATLAB数值运算实验报告.docx
MATLAB数值运算实验报告 实验报告系 (部): 信息工程 班 级: 姓 名: 学 号: 课 程: MATLAB 实验名称: Matlab数值运算目录一 . 实验目的2二 . 实验内容2三 . 实验 ...
最新文章
- 三相全桥电压型PWM逆变器(交直交)Simulink仿真
- EOF的意义及用法(while(scanf(“%d“,n) != EOF))
- 4gl 上传文件_文件管理密码相册工具app下载-文件管理密码相册工具app安卓版下载v1.8...
- 关于CDN的部署思路和技术架构
- 原来fb可以在一个工程里面输出多个swf模块
- 说说 C# 9 新特性的实际运用
- 反应型关系数据库事务
- OC2_点语法(属性关键字)
- git整合分支的两种方式 merge 和 rebase
- React怎样从函数中辨别类
- 2.业务架构·应用架构·数据架构实战 --- TOGAF理论全景解读
- html语言的前景,HTML5语言的优势有哪些?2021年还有前景么?
- CSS3中的unicode字符编码,来添加图标
- 仿微信打飞机小游戏GamePlane(1)----概述
- 获得每种调制方式中每个信噪比的准确度
- php读取excel文件_PHP读取Excel类文件
- Docker之Jitsi Meet视频会议服务
- 目标检测 | 火焰烟雾检测论文(实验部分)
- 五大领域总目标指南_幼儿园五大领域总目标
- 同一个局域网内如何共享文件夹(含共享打印机操作方法)
热门文章
- CRNN-pytorch模型转libtorch模型踩坑记录
- DeepFaceLab: A simple, flexible and extensible face swapping framework 一个简单、灵活和可扩展的人脸交换框架
- 微信朋友圈文章可能构成「现有技术公开」而导致专利权丧失
- 转载:Windows的进程创建和映像装入
- 抓取html对象插件,chrome扩展获取页面dom对象信息
- Android 基于google Zxing实现对手机中的二维码进行扫描
- 小程序border边框样式无效
- Front end workflow
- SSH远程登录执行命令脚本
- 快速吃透π型滤波电路-LC-RC滤波器