matlab实验 识别木桩图中每个木桩的大小 腐蚀 连通域_树桩截面识别

% 读取图像并转化为二值图像
I = imread('Fig0941.tif');
% 设置阈值
threshold = graythresh(I);
% 转化为二值图像
bw = imbinarize(I,threshold);
% 中值滤波
bw = medfilt2(bw, [3 3]);
% 腐蚀
for k = 1:3
    se = strel('disk',3);
    bw = imerode(bw, se);
end

2. 连通域的标记和操作

bwlabel会返回两个参数,第一个参数l是矩阵,会将同一个连通域下的点设为同一个值;第二个参数num是连通域个数。

regionprops会返回很多信息,可以在传入参数的时候选择是‘Area’还是‘Centroid’,Area是返回一个48x1的面积矩阵,Centroid返回的是中心坐标。

% 连通域标记
[l, num] = bwlabel(bw, 8)
% 获取面积,坐标
area = regionprops(l,'Area');
centroid = regionprops(l,'Centroid');
figure(1)
imshow(bw);
figure(2)
imshow(I);
3. 给原图添加文字

要注意是area(i).Area(1)。

阈值设为1000,大于它的就标记为big,小于它的标记为small。

big_num = 0;
small_num = 0;
% 添加文字
for i=1:num
    if(area(i).Area(1)>1000)
        text(centroid(i,1).Centroid(1,1),centroid(i,1).Centroid(1,2), 'big','Color', 'b', 'Fontsize', 8) 
        big_num = big_num+1;
    else
        text(centroid(i,1).Centroid(1,1),centroid(i,1).Centroid(1,2), 'small','Color', 'r', 'Fontsize', 8) 
        small_num = small_num+1;
    end
end 
text(500, 440,['total: ', num2str(num)],'Color', 'r', 'Fontsize', 14) 
text(500, 470,['big: ', num2str(big_num)],'Color', 'r', 'Fontsize', 14) 
text(500, 500,['small: ', num2str(small_num)],'Color', 'r', 'Fontsize', 14) 

4. 完整代码
% 读取图像并转化为二值图像
I = imread('Fig0941.tif');
% 设置阈值
threshold = graythresh(I);
% 转化为二值图像
bw = imbinarize(I,threshold);
% 中值滤波
bw = medfilt2(bw, [3 3]);
% 腐蚀
for k = 1:3
    se = strel('disk',3);
    bw = imerode(bw, se);
end

% 连通域标记
[l, num] = bwlabel(bw, 8)
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**

**因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**

![img](https://img-blog.csdnimg.cn/img_convert/b63164f15f3e7c5ed1ef3dd6d317eba7.png)

![img](https://img-blog.csdnimg.cn/img_convert/b2a18eb00d4e6e5ede42cf62b2795ccd.jpeg)

![img](https://img-blog.csdnimg.cn/img_convert/7b360fd4b31632681dbcb8657978ae14.png)

 ![img](https://img-blog.csdnimg.cn/img_convert/3539b02eacbce469f3c02033598cb93d.png)

![img](https://img-blog.csdnimg.cn/img_convert/f328de6ed18a361bf79eb71c9a12fe96.png)

![img](https://img-blog.csdnimg.cn/img_convert/cd443e03441fc6d0c709d04118f9259c.png)

![](https://img-blog.csdnimg.cn/img_convert/99e506a72939069576cf1a4f32c87294.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


!**](https://bbs.csdn.net/topics/618654289)

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**!!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值