matlab 图像二值化_农青战“疫”|线上志愿助学展——西红柿图像识别

6648097f6fb94b4a1d3fb7236ec1ad8d.gif

图片中番茄个数的检测及标记

b444f4dd29752404d244c3205dc2a683.png

实验背景

733a18fa147bea4d5dbaee3e376d6e1c.png

随着我国农业方面不断向规模化、机械化方向发展,番茄的产量也大幅度增加。目前国内番茄采摘、筛选作业基本采用人工进行,劳动强度大、工作效率低。基于此,应用图像识别技术,研究设计果实采摘过程自动检测与识别技术成为目前研究人员的方向。

788d1838a48c29909cff310a807a14b6.png

实验目的

129a86a7b21af72e99daf5359e87aa67.png

熟悉掌握关于图像处理方面的相关知识,并将其整合,同时学习掌握Matlab的相关知识,实现对图像的处理。

72494d1fd6b1696ffa65bcd84e404e3d.png

实验内容

有一幅关于叶片的图片,叶片中含有番茄果实,运用所学知识,在Matlab中编程,找出果实个数并在图中标出其所在位置。

实验流程

0d4037cdfdb02799b62a7186099a0301.png 3d31550c47ce3f8aaf73651719826ca5.png 88dcacb60159b4962afce63faf222dc9.png

实验步骤

1、获取彩色图片

MATLAB代码

rgb=imread('Image_rgb_15.tif');

129a86a7b21af72e99daf5359e87aa67.png

2、转换为灰度图像

MATLAB代码:

I=rgb2gray(rgb);

1b1c088c687a249353b93ead0f8ff894.png

3、获取灰度直方图并进行阈值化处理

MATLAB代码:

(1) figure,imhist(I);

3067be3c4acc1e456f14e11ac4f0f834.png

观察灰度直方图,可以从图中看出在图像灰度60时为谷值,因此选阈值为60;

(2)I1=imadjust(I,[60/255 1],[0 60/255]);

将灰度值大于60/255的像素置1,灰度值小于50/255的像素置0,以减弱部分叶片的影响:

48175e9ede2a7599ecc30f94e952e6ed.png

4、开运算

MATLAB代码:

se=strel('disk',40);

I2=imopen(I1,se);

选择半径为40的圆盘形结构元素对图像进行开运算,以消除点状噪声:

3d89c06b052bf0d15b71eacff5320f91.png

开运算后图像对比度很低,获取灰度直方图:

a98a002a4f5a89c75eebcbca6f7c1bd5.png

从灰度直方图中可以看出图像经过处理以后灰度值主要集中在了0~5左右;

5、n值化处理

MATLAB代码:

I2=50*I2;

n值化处理以增强对比度,增大50倍使灰度直方图基本分布在整个区域内:

373fad2448d137ad62f7a0b9b83f2628.png

6、二值化

MATLAB代码:

Ib=im2bw(I2);

7cbb505f7d1245df5a37f7f689eda87d.png

7、区域标记

MATLAB代码:

[x,n]=bwlabel(Ib);

8、计算各区域特征值

MATLAB代码:

stats=regionprops(x,'all');

Ib1=zeros(size(Ib));

for i=1:n

ar=stats(i).Area;

max=stats(i).MajorAxisLength;

min=stats(i).MinorAxisLength;

Ri=max/min;

物体序号

面积

长宽比

1

5502

1.0154

2

6096

1.0550

3

10606

1.0952

4

8136

2.1866

根据查阅资料,我们将长宽比的限制范围限制在小于1.3,面积的限制范围限制在大于7000。与上表对比,我们可以看出只有物体编号为3的符合要求,因此基本可以判断出图中只有1个番茄果实。

9、检测目标区域并计数

MATLAB代码:

if Ri<1.3&ar>7000

[p,q]=find(x==i);

Ib2=bwselect(Ib,q,p);

Ib1=(Ib1)|(Ib2);

count=count+1

a6a9735b971d3bc7ea7553ef75d9c4b2.png

10、转换为伪彩色图像

MATLAB代码:

Lrgb=label2rgb(Ib1);

37f2720b35b779f5f450036bf7b6a68f.png

11、在原图上叠加伪彩色图像进行目标标记

MATLAB代码:

figure,imshow(rgb);

hold on

himage=imshow(Lrgb);

set(himage,'AlphaData',0.3);

96053ac8185745cfe5f057afd29af4ed.png

12、设计GUI界面进行图像处理

(1)运行gui界面

8961f0f6ed51395edf853c5ebdb7aad6.png

(2)点击获取图像

25c2415fb74df3138a5f2457c38abdbd.png

(3)点击检测番茄

c517a531bb9a3e2c074fec27a4453919.png ae125a23a8cd06af152ba483ef79d400.png

总结

总体来说,基本达到实验目标。在本次试验中,对图像处理的技术有了新的了解,在做此次作业之前,感觉图像处理的每一项技术都是分隔开的,无法较好的融合到一起,但是经过此次试验,进一步加深了对图像处理技术的了解。同时,掌握了Matlab一些相关函数的使用,并且较为熟练。本次,我们还设计了gui界面,便于操作者使用。

4372233db6c065dba9d52ebfaca223cd.png

不足

1 、在对图像进行阈值化处理与选择结构元素时需要进行反复试验,找到最合适的阈值与结构元素形状、大小;

2、该实验并不具有普遍性,

3、计算各区域特征值的时候所选的限制范围是根据此次识别番茄果实而定的,若换为其他果实,由于形状、大小等因素的不同,可以会导致限制范围需要作出相应的改变。

0540c746ebb6fee563d1de675d0faeb4.png

参考文献

1、许凯. 基于图像识别的苹果果实检测技术[J]. 实验室研究与探索, 2016, 35(10):36-39.

2、黄敏. 基于模板匹配的苹果果实识别[J]. 计算机应用与软件, 2010, 27(5):240-242.

3、佚名. 近色背景果实识别的多源图像配准[J]. 计算机工程与设计, 2018, 39(11):202-207.

4、司永胜, 乔军, 刘刚,等. 苹果采摘机器人果实识别与定位方法[J]. 农业机械学报, 2010, 41(9):148-153.

5、陈礼鹏, 穆龙涛, 刘浩洲,等. 基于猕猴桃果萼图像的多目标果实识别方法[J]. 计算机工程与设计, 2018, v.39;No.378(06):246-252.

图文 | 王雅淳

编辑 | 王亦婷

责任编辑 | 郝泽 王玥璇 徐石蔚

微信号 | CAU我们的团

d0430de171e3f9bd1b33aa028c59c069.gif c32c7b9b6b5a0c19059b9e1d14c86fa5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值