Matlab中bwmorph函数的使用
Matlab中bwmorph函数的使用
Matlab中提供了一个基于形态学的处理函数,即以膨胀、腐蚀等操作为基础,其语法格式如下:
bw2=bwmorph(bw1,operation,n);
其中bw1为输入的二值图像;operation是可以进行的操作;而n为执行该操作的次数;bw2为原图像经过n次操作后得到的结果图像。
参数operation的常用取值:
open:对图像做开运算
close:对图像做闭运算
dilate: 对图像做膨胀处理
erode:对图像进行腐蚀处理
thin:对图像进行细化操作
skel:提取图像骨架
spur:消除尖刺
bwmorph应用示例,统计硬币个数:
clc;
clear;
close all;
A=imread('d:\Temp\hw.png');
A=rgb2gray(A);
figure,imshow(A),title('灰值图像');thresh=graythresh(A);
B=im2bw(A,thresh);
figure,imshow(B),title('二值图像');C=bwmorph(B,'dilate',3);
figure,imshow(C),title('膨胀');
D=bwmorph(C,'erode',3);
figure,imshow(D),title('腐蚀');[L,num]=bwlabel(D,8);
stats=regionprops(L);
t=0;
label=1;
temp=zeros(num,2); %标记矩阵
for i=1:num %利用标记算法得到面积近似个体的个数各有多少个if stats(i).Area>300 %忽略杂质连通域t=t+1;temp(t,1)=stats(i).Area;if(t==1)temp(t,2)=label;endhasGot=0;for k=1:t-1if(abs(stats(i).Area-temp(k,1))<300)hasGot=1;temp(t,2)=temp(k,2);break;endendif(hasGot==0)temp(t,2)=label; label=label+1;endend
enda=0;
b=0;
c=0;
d=0;
for i=1:num %提取连通矩阵中的数据if(temp(i,2)~=0)switch temp(i,2)case 1a=a+1;case 2 b=b+1;case 3c=c+1;case 4d=d+1;endend
end
fprintf('%d个一元的 %d个一毛的 %d个瓶盖 %d个五毛的\n',a,b,c,d);
`原始图像
经过灰度化、二值化、膨胀、腐蚀的图像
利用bwlabel和regionprops函数,忽略面积小于300像素点的杂志连通域影响,将面积近似的连通域归为一类,最终得到四种不同连通域,个数分别为10,10,5,5。对应10个一元硬币,10个一角硬币,5个瓶盖,5个五角硬币。
Matlab中bwmorph函数的使用相关推荐
- matlab中bwmorph函数的作用,Matlab中的bwmorph函数解释
Matlab中的bwmorph函数解释 bwmorph:对二值图像的形态学操作. BW2 = bwmorph(BW,operation) BW2 =bwmorph(BW,operation,n) BW ...
- 9.matlab中repmat函数
来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...
- 如何在Matlab中获取函数参数的数目?
本图文详细介绍了Matlab中获取函数参数数目的方法.
- matlab s% d%,matlab中var函数的翻译For N-D arrays, VAR operates along the first
matlab中var函数的翻译For N-D arrays, VAR operates along the first matlab中var函数的翻译 For N-D arrays, VAR oper ...
- 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法
关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...
- Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)
Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...
- cumsum在matlab中,matlab中cumsum函数和sum函数详解
调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...
- matlab中fprintf函数的具体使用方法
matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...
- Matlab中plot函数及legend函数详解
Matlab中plot函数及legend函数详解 Matlab中plot函数及legend函数详解 Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1 ...
最新文章
- LeetCode简单题之排列硬币
- 从未在一起更让人遗憾_我们从未在一起和我们最终没在一起,哪一个更让人难过?...
- C语言关键字 - 铁布衫:const
- oracle结果集过大,多重子查询/大结果集查询问题
- linux 服务器之查看磁盘使用情况
- dingo php,详细介绍Laravel+Dingo/Api 自定义响应
- ANT:fileset中使用exclude
- linux内核有那三部分组成,Linux内核的构成
- 多个生产者多个消费者,只有5个包子
- Telerik RadColorPicker 漂移问题的解决
- 挑选了适合测试边界的汉字及截图
- Gocloud高恪固件CVE-2020-8949漏洞利用打开SSH(poc支持5.2最新版测试通过)
- 【git】git的删除命令与如何删除仓库文件的方法
- useSSL=false or true如何抉择
- Overture教程之如何更改整首谱子的调号
- Markdown|书单
- 服务器文件怎么删,怎么删除服务器文件
- 华米手表会安装鸿蒙系统那,【教程】华米运动手表3安装第三方应用、第三方表盘及使用教程...
- 伪类选择器(vscode)
- H.266/VVC的编码结构和块划分