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函数的使用相关推荐

  1. matlab中bwmorph函数的作用,Matlab中的bwmorph函数解释

    Matlab中的bwmorph函数解释 bwmorph:对二值图像的形态学操作. BW2 = bwmorph(BW,operation) BW2 =bwmorph(BW,operation,n) BW ...

  2. 9.matlab中repmat函数

    来源: matlab中repmat函数的用法 - CSDN博客 https://blog.csdn.net/anqier1009/article/details/5214978 B = repmat( ...

  3. 如何在Matlab中获取函数参数的数目?

    本图文详细介绍了Matlab中获取函数参数数目的方法.

  4. 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 ...

  5. 关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法

    关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 参考文章: (1)关于MATLAB中xlswrite函数写数据出现服务器异常情况的解决办法 (2)https://www.cn ...

  6. Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17)

    Matlab中Ksdensity()函数的用途 (2011-04-02 16:55:17) 转载▼ 标签: 杂谈 分类: Matlab应用 我们在统计数据处理时,经常计算一个样本的概率密度估计,也就是 ...

  7. cumsum在matlab中,matlab中cumsum函数和sum函数详解

    调用格式及说明 matlab中cumsum函数通常用于计算一个数组各行的累加值.在matlab的命令窗口中输入doc cumsum或者help cumsum即可获得该函数的帮助信息. 调用格式及说明 ...

  8. matlab中fprintf函数的具体使用方法

    matlab中fprintf函数的具体使用方法实例如下: fprintf函数可以将数据按指定格式写入到文本文件中.其调用格式为: 数据的格式化输出:fprintf(fid, format, varia ...

  9. Matlab中plot函数及legend函数详解

    Matlab中plot函数及legend函数详解 Matlab中plot函数及legend函数详解 Matlab中plot函数全功能解析 功能 二维曲线绘图 语法 plot(Y) plot(X1,Y1 ...

最新文章

  1. LeetCode简单题之排列硬币
  2. 从未在一起更让人遗憾_我们从未在一起和我们最终没在一起,哪一个更让人难过?...
  3. C语言关键字 - 铁布衫:const
  4. oracle结果集过大,多重子查询/大结果集查询问题
  5. linux 服务器之查看磁盘使用情况
  6. dingo php,详细介绍Laravel+Dingo/Api 自定义响应
  7. ANT:fileset中使用exclude
  8. linux内核有那三部分组成,Linux内核的构成
  9. 多个生产者多个消费者,只有5个包子
  10. Telerik RadColorPicker 漂移问题的解决
  11. 挑选了适合测试边界的汉字及截图
  12. Gocloud高恪固件CVE-2020-8949漏洞利用打开SSH(poc支持5.2最新版测试通过)
  13. 【git】git的删除命令与如何删除仓库文件的方法
  14. useSSL=false or true如何抉择
  15. Overture教程之如何更改整首谱子的调号
  16. Markdown|书单
  17. 服务器文件怎么删,怎么删除服务器文件
  18. 华米手表会安装鸿蒙系统那,【教程】华米运动手表3安装第三方应用、第三方表盘及使用教程...
  19. 伪类选择器(vscode)
  20. H.266/VVC的编码结构和块划分

热门文章

  1. Android RadioButton 修改选择框
  2. day07-字符编码、文件操作
  3. redis缓存和cookie实现Session共享
  4. 博客园在微信内置浏览器打开时添加微信赞赏码功能
  5. mongodb的安装以及客户端
  6. Pandas 基础 (3)—— 重新索引
  7. num2cell用法
  8. Python3中对Dict的内存优化
  9. 根据搜索来路 弹出相应广告
  10. Session丢值的问题