数字图像处理理工论文——谷物计数(含自编程序).doc_第1页
数字图像处理理工论文——谷物计数(含自编程序).doc_第2页
数字图像处理理工论文——谷物计数(含自编程序).doc_第3页
数字图像处理理工论文——谷物计数(含自编程序).doc_第4页
数字图像处理理工论文——谷物计数(含自编程序).doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理基于MATLAB的谷物计数的实现 学院:光电工程学院姓名: 学号:0802116- 基于MATLAB的谷物计数的实现摘要:针对目前谷物人工计数和光电计数方法存在的不足,提出了一种基于Matlab图像识别和处理技术的谷物计数方法,并用实例验证了其可靠性。该方法减轻了操作者劳动强度,弥补了人视觉的不足之处,提高了效率及准确率,为今后进一步研究奠定了必要的理论与实践基础,对完善精细农业具有重要意义。在检测盘上的颗粒往往会出现紧靠或者重叠的谷物,导致检测图像中常出现重叠区域,这给后续谷物检测分析等工作带来了很大的困难,本文利用极限腐蚀和条件膨胀相结合的方法解决此问题,以达到精确计数的目的。关键词:图像处理,谷物,计数方法,Matlab。引言:谷物作为主要粮食和饲料作物,在农业生产中占有重要地位。提高谷物产量和质量的主要方法是选育出优质品种,而在选育品种过程中,对种子的计数是不可缺少的内容。目前,种子的计数方法通常采用人工计数,或半自动的光电计数器,很显然传统的计数方法存在着效率低、准确性不高等缺点。我们计算机图像识别和处理技术实现考种过程中的计数,为谷物粒群的识别、精选、分级等的进一步研究奠定必要的理论与实践基础,并为育种工作提供一种高效、快捷的谷物计数新技术。1、 谷物(大米)图像的获取这里我们选用的谷物是大米。获取图像方式有两个一是使用手机,二是使用数码相机。一开始我们通过手机拍摄来获取图像,如(图一)。然后对图像进行剪切(图二)。从图二里可以看出,图片被剪切后其所得效果并不好,图片清晰度很低。使用手机拍摄,所得图像,其清晰度不漂亮。 图一 图二然后我们又尝试了第二种方法,用数码相机获得图像。如下图所示,这是我们用1000万像素数码相机所拍的的谷物(此处以瓜子替代)相片。通过相片,我们可以看到谷物颗粒很清楚,无明显的模糊现象。 两种途径相对比,我们最终选择用数码相机获得图像这一方式。其图像如(图三)。这个图像谷物颗粒有连接情况,这比较符合实际,故该图片仿真度亦比较高。 图三 A(实验所用图像)2、 基于Matlab的谷物图像处理2.1 谷物图像的读入Matlab软件中,图像的读入命令是imread(xx.xxx),xx是图像的名字,xxx是图像的格式。本实验中,图像的格式为jpg,故,我们的读入命令为I=imread(A.jpg)。读入的图像显示(imshow(I))后2.2 谷物图像的处理2.2.1 谷物图像的灰度化处理灰度变换T的最简单形式是使用领域大小为11,此时,(x,y)处的g值仅由f在该点处的亮度决定,T也变为一个亮度或灰度级变化函数。当处理单设(灰度)图像时,这两个术语可以互换。由于亮度变换函数仅取决于亮度的值,而与(x,y)无关,所以亮度函数通常可写做如下所示的简单形式: s=T(r)其中,r表示图像f中相应点(x,y)的亮度,s表示图像g中相应点(x,y)的亮度。灰度处理的命令如下:g=rgb2gray(I)。该指令主要作用是将jpg图片转为灰度图像。效果如下。2.2.2 灰度图像中值滤波在获取图像的过程中,由于受到各种因素的影响,所得到的图像总会或多或少的感染一些噪声信息,这些噪声信息会恶化图像的质量,所以要进行去噪处理。去噪的方法有很多,大致分为两大类:一类是时域去噪,另一类是频域去噪。时域去噪的代表方法有加权平滑法、中值滤波、二值形态学法等;频域去噪的代表方法有经典数字滤波器、同态滤波、小波分析等。本文采用时域去噪中的中值滤波法,其具有抑制干扰脉冲和点状噪声的作用,并且可保持较好的图像边缘,是指把以某点为中心的小窗口内的所有像素的灰度按从小到大的顺序排列,将中间值作为该处的灰度值。在Matlab中中值滤波的函数是medfilt2。中值滤波命令如下:m=medfilt2(g); %灰度图像中值滤波。滤波后得到的图像如下图。2.2.3 灰度图像二值化二值化图像函数主要有dither和im2bw函数。dither 函数通过颜色抖动来达到转换图像的目的。语法:BW = dither(I)。 Image 是图像矩阵资料,BW 是二值化图像矩阵。 im2bw 函数通过对灰度值进行阈值判断的方法达到目的。语法:BinaryImage = im2bw( Image, Level )。Image 是输入图像矩阵资料,Level 是二值化程度值,其为介于0到1之间值,BW 是二值化图像矩阵。 灰度图像二值化命令如下:level=graythresh(m); %得到合适阈值e=im2bw(m,level); %二值化得到的图像结果如下。2.2.4 灰度图像取反为了更好的读取图像、腐蚀,我们选择对灰度图像进行取反。取反命令如下:bw=-e+1 %取反。得到的图像如下。 2.2.5 去噪声处理+腐蚀处理由于大米粒之间有连接情况出现,我们为了更好更准确的辨识出大米粒数,采用了去噪+腐蚀的方式。实践证明,这种途径是相当有效、可行的。去噪+腐蚀命令如下。se=strel(disk,4); LC=imClose(bw,se);se1=strel(disk,4); %去噪处理Lo=imopen(LC,se1);BW8=bwmorph(Lo,open); %开运算SE=strel(arbitrary,eye(18); %设置腐蚀结构参数BW=imerode(BW8,SE); %腐蚀SE1=strel(arbitrary,eye(46); %设置腐蚀结构参数BW0=imerode(BW,SE1); %腐蚀l,n=bwlabel(BW0,8);display(n) %计数 第一次腐蚀结果 第二次腐蚀结果程序执行后我们获得 n=20 ,而原米粒数就是二十 这说明我们的程序成功了,对其他图片进行腐蚀,结果仍成功(cheers)。2.2.6 显示所有图片为了方便观察,我们将处理中各部分得到的图像以流程形式展现出来。命令如下。figure;subplot(1,6,1);imshow (I);title(原图像);subplot(1,6,2);imshow (g);title(灰度图像);subplot(1,6,3);imshow(e);title(二值图像);subplot(1,6,4);imshow(bw);title(图像取反);subplot(1,6,5);imshow(BW8);title(开运算);subplot(1,6,6);imshow(BW);title(腐蚀图像);figure;imshow(BW0);title(腐蚀图像2);所得图像如下(额、图片有点大啊):3、 结果与讨论通过以上实验,我们可以发现,使用Matlab处理图片可以得到谷物颗粒的数目,当然了,前提是做出程序。我们实验的结果显示,此程序辨识谷物颗粒(包括叠压下的情况),其准确度100%。像其他的程序,可能能够解决谷物计数问题,但在叠压下的情况其却处理不了(我们的能处理)。故,我们的程序是更棒的。参考资料:【1】(美)冈萨雷斯.数字图像处理(第二版).2007【2】(英)尼克松.阿瓜多.特征提取与图像处理(第二版).2010【3】张德丰.MATLAB数字图

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论