MATLAB图像处理植物叶片面积计算

MATLAB图像处理植物叶片面积计算

实验名称

基于Matlab图像处理求植物叶片面积

实验目的

1.用matlab测试叶片面积与网格测面积对比,研究可用性。

2.学习用matlab对图像进行背景去除、对比度处理、图像型学处理及中值滤波处理等。

3.学习用matlab计算像素点的比例,利用已知参照物面积计算出要求的叶子面子。

实验原理

实验通过手动网格法测叶子面积与matlab处理计算叶子面积对比,研究matlab测试叶子面积的可用性。

matlab测面积所选择的图片是把植物叶片放置在旁边画有已知面积的小方格作为参照物的白纸上用手机拍取图像。如此即将叶片信息转化为计算机可识别的图像信息。由于数字图像都是由一个个像素点组成。可以根据像素点比例和参照物面积求出植物叶片面积。叶片面积计算公式如下:


实验内容步骤

1、网格测面积

由于用excel做30mm*30mm网格及10mm*10mm小方格打印出来实际面积变为29mm*28mm网格及9mm*9mm小方格(如下两图)故参照物面积为81mm2,网格法测出叶子所占空格490,共有900网格,故叶子面积为442mm2计算如下:



v2-b4f4e22a19ea566faf97b895b1974822_b.jpg

v2-c744e6e1c1e91c47a98eb822855acf6c_b.jpg


2、matlab测面积

(1)通过手机拍照如下保存为leaf..jpg和一张白色背景图background.jpg,通过matlab读取图像。如图1

(2)图像灰度处理

由于手机拍摄的是彩色即rgb格式,为了进行下一步处理,需要先将图像转换为灰度图像。灰度变换是图像增强的一种手段,是图形动态范围加大,对比度扩展,图形更清晰,特征更明显。用rgb2gray函数。处理后如图2


v2-da94aaa3f5750b359705c3a232549fcc_b.jpg

v2-952f59537d8eebe666f1e5b027dc504e_b.jpg


图1 图2

  1. 用差分法进行图像分割

图像差分法用imsubtract函数将一幅输入图像的像素值从另外一幅输入图像相应的像素值中减去,再将相应的像素值之差作为输出图像的对应的像素值。处理图像后可使用imclearborder命令消除图像中的边缘对象。如图3

  1. 调节对比度

调节对比度imadjust函数可以使原来模糊不清甚至无法辨别的原始图像处理成清晰的富含大量有用信息的可使用图像,有效的去除图像中的噪音、增强图像中的边缘或其他需要的区域,从而更加容易对图像中需要的目标进行检测和测量。处理后如图4


v2-523ddc7cd939406160d6cc056f93e12d_b.jpg

v2-428f47b320b2f62a23831d6dff435218_b.jpg


图3 图4

  1. 边缘检测

通过edge函数对图像分别用sobel、robert、prewitt和canny算子方法比较在本实验叶片中canny效果最好。分析如图5


v2-662c5409ed0796a2b5bdec018146df56_b.jpg


图5

  1. 图像型学处理

通过strel和imdilate函数对图像进行膨胀操作,填补边缘缝隙后通过imfill函数对空隙填充,再用菱形结构对图像进行平滑处理。

  1. 中值滤波处理

中值滤波在衰减噪声同时不会使图像边界模糊,去噪效果依赖2个要素:领域的空间范围和中值计算中涉及的像素数。具体函数medfilt2。

  1. 标记及面积计算

这个步骤是确定图像中的目标对象并标记。调用bwlabe函数寻找连通成份而且用唯一的数字将他们分类标记。通过ismember函数去除不符合区域,在图片中显示像素数,图6所示。


v2-8240b9732c7393b178ba063bc258d03b_b.jpg


图6

实验结果与分析

最终得到图片中两个像素数带入原理中公式,求得叶片面积为438.12mm2:


v2-0a2fcbf6bcbfc058c90b1ae4405ca8e2_b.jpg


通过两种测试方法得到的结果误差为442-438.12=3.88mm2可知,matlab测试数据相对准确具有可用性,而且matlab通过几行代码测试可以减少人工费时费力,解决了实际问题。


代码附下


v2-266dcfbd43ad24ca43b0c36ca6e6b6ad_b.jpg



v2-aa715f6b6913e9f1cce803a205d3f372_b.jpg

  • 11
    点赞
  • 173
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
基于Matlab图像处理植物叶片面积测量方法主要分为以下几个步骤。 首先,读取图像。通过Matlab的imread函数,将植物叶片图像读入Matlab环境。 接下来,进行图像预处理。常用的预处理方法包括灰度化、去噪和图像增强等。可以使用Matlab的rgb2gray函数将彩色图像转换为灰度图像,然后使用imnoise函数去除噪声,并使用imadjust函数进行图像增强。 然后,进行阈值分割。阈值分割可以将叶片与背景分离。可以使用Matlab的im2bw函数将灰度图像转换为二值图像,然后通过试错法或自适应阈值法确定合适的阈值。 接下来,进行形态学处理。主要包括腐蚀和膨胀操作,以去除噪声和补充连通区域。可以使用Matlab的imerode和imdilate函数进行形态学处理。 然后,进行区域填充。填充可以将叶片内部的空洞填满,使得计算得到的面积更加准确。可以使用Matlab的imfill函数进行区域填充。 最后,计算叶片面积。通过计算二值图像中叶片区域(连通区域)的像素个数,再乘以像素的实际尺寸,即可得到叶片面积。可以使用Matlab的bwlabel函数得到连通区域,再使用regionprops函数计算每个连通区域的面积。 综上所述,基于Matlab图像处理植物叶片面积测量方法主要包括图像预处理、阈值分割、形态学处理、区域填充和面积计算等步骤。这些步骤结合使用,可以实现对植物叶片面积的准确测量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值