matlab实现种子识别、计数
1.整体方案设计
1.1 种子数量统计的应用背景
我国作为一个农业大国,粮食产量大但粮食以及植物的种子的数量统计和质量辨别在之前都主要以人力主观判断,任务繁琐重复率高,误差大,效率低,耗时少,为农业工作者增加负担。而随着颗粒图像处理技术的发展,很多工具已经能自动,快速的书别图像颗粒,客观统计颗粒数量,并且提取颗粒各种特征参数,在辅助以其他处理软件,进行分析处理,极大的减少人工的工作量并且提高工作效果以及准确度。
这次的设计内容是希望利用数字图像的内容简单地实现对植物种子以及不同颗粒数量上的统计以及颗粒细节上的处理。
1.2 主要步骤说明
(1)读入种子图片 (timg2.png);
(2)将图片进行灰度和二值化处理;
(3)加入高斯噪声,其中;
(4)滤波去噪(中值滤波);
(5)对步骤(4)中去噪的图像,用开运算,二值化和贴标签等方法,自动统计种子的数量。
2.实验与分析
2.1 实验分布实现
2.1.1 读入种子图片(timg2.png)
利用matlab中自带的图像读取函数,函数说明:A=imread(IMGFILENAME,FMT),IMGFILENAME 指定图像文件的完整路径和文件名。如果在work工作目录下只需提供文件名,否则应提供完整路径,且路径中不能包含中文符号。FMT为图像文件的格式对应的标准扩展名。
程序代码如下:
I = imread(‘timg2.png’); %调用imread()读取图像timg2.png
2.1.2对图像进行灰度和二值化处理
程序代码如下:
G=rgb2gray(I);
level = graythresh(G);
bw = im2bw(G,level);
运行结果:
2.1.3 加入高斯噪声并滤波去噪
Matlab中加噪声函数使用说明:h=imnoise(I,type,parameters),I为需要加噪的图像,type为噪声类型,有gaussian、localva、poisson、salt & pepper、speckle,parameters为所加噪声参数。本论文中指定添加的噪声为高斯噪声N(μ,σ2),其中,μ=0,σ2=0.01 。Matlab中自带中值滤波函数medfilt2(I,[m,n]),其中I代表待滤波图像,[m,n]指窗口大小,默认大小为3x3。
程序代码如下:
H = im2double(bw);
J=imnoise(H, ‘gaussian’);
K=medfilt2(J,[10,10]);
运行结果: