基于MATLAB的储粮害虫图像处理方法

news/2024/7/8 5:10:00 标签: 图像处理, matlab, processing, image, 图形, components

摘要: 在对 粮虫图像处理过程中,介绍了 Matlab 图像处理工具箱中的函数,给出了图像处理与分析的技术实现 边缘检测及轮廓提取 通过形态学方法进行图像特征抽取与分析, 达到了比较好的效果.
关键词: 粮虫图像    边缘处理    形态学变换    特征抽取
Image of food insect processing based on Matlab
                                Zhou long
(Department of electrical & information engineering,Wuhan Polytechnic University, 430023)
Abstract:  In the food insect image processing,this paper first introduces the functions of Matlab image processing,then presents some techniques in image processing and analysis,such as edge recognition,outline track and image feature extracting and analysis with morphological methods,It gets good  result.
Key words: image of food insect, edge processing,morphological transform,feature extraction
 
    我国是农业大国, 粮食产后储藏期间 , 储粮害虫造成的危害十分严重。并且, 近年来储粮害虫的种类和密度呈上升趋势,致使储粮损失更加严重。 为了有效防治害虫,就要预测它们发生趋势﹑数量﹑种群动态及潜在为害,而且也要评估各项防治措施和策略所得到的不同预期结果。
      我们 以MATLAB 6.5为开发工具,总体框图如下,具体工作流程如下:CCD获取原始图像后,经阈值(由概率统计得到或者是经验阈值)使图像二值化快速判断该桢图像是否有粮虫。若有粮虫,运用图像的边缘检测和轮廓提取及跟踪,得到粮虫的轮廓,进一步提取粮虫的各种参数,如面积,周长,复杂度等特征,并由系统本身的专家系统进行判断。检测完毕后,给出仓内各种粮虫种类及密度,并提示相应的防治措施。
1           MATLAB 图像处理工具概述
Matlab 提供了 20 图像处理函数,涵盖了图像处理的包括近期研究成果在内的几乎所

基金项目:湖北省自然科学基金资助项目 (2003ABA053) ;武汉市青年科技晨光计划资助项目 (20035002016_09) ;湖北省教育厅基金资助项目 (2003A001)。

有的技术方法,有图像处理工具箱函数在有噪和退化图像的恢复图形绘制图形几何变换图像增强二值分析小波分析和分形几何用于图像处理,灰度与二值图像的形态学运算;结构元素创建与处理;基于边缘的处理;色彩映射表操作;色彩空间变换;图像类型与类型转换;以及图形用户界面设计等方面的工程实际应用。

2          应用MATLAB工具箱进行储粮害虫图像分析处理
2.1  用直方图均衡实现图像增强
     当图像对比度较低,即灰度直方图分布区间较窄时,可用直方图均衡实现灰度分布区间展宽而达到图像增强的效果。下面是实现的源程序及相关功能的注解:
%源程序: image1 m
clear,close all                 %清除所有内存变量,图形窗口
A = imread('rice.tif');         %将图像文件rice.tif的图像像素数据读人矩阵I
imshow(A)                       %显示图像A,图像对比度低,如图a
figure, imhist(A)               %在新图形窗口中显示图像A的直方图如图b。可以注意到图像亮度范围相当狭窄
A2=histeq(A);                   %对图像A做直方图 衡补偿
figure, imshow(A2)         %在新图形窗口中显示新图像A2,图c
figure, imhist(A2)              %在新图形窗口中显示图像A2 直方图 ,如图d
    
   abcd图images/blog_csdn_net/kw123/at1.gif" style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; border-top-width:0px; border-right-width:0px; border-bottom-width:0px; border-left-width:0px; border-style:initial; border-color:initial; border-top-style:none; border-right-style:none; border-bottom-style:none; border-left-style:none; border-width:initial; border-color:initial" />
用直方图均衡实现图像增强
程序运行后,可得如图的对比图像。达到比较好的效果
2.2 图像的 边缘检测及特征提取
    图像的边缘是图像基本的特征之一。所谓边缘是指其周围像素灰度有阶跃性变化或屋顶变化的像素的集合。物体的边缘是由灰度的不连续性所致,因此考察图像每个像素在某个邻域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律即可检测图像边缘。 特征在一定程度上可以反映昆虫的体型结构,如面积、周长、偏心率、形状参数、孔洞数、欧拉数、圆形性、似圆度、球状性、叶状性等,特征的选择是图像识别的关键,对判别特征的选择采用特征值直接比较的方法,得到判别特征为面积、偏心率和孔洞数。二叉分类法类似于传统的昆虫检索表的形式,即找出判别特征后,对不同的特征根据分类阈值按二分的方法进行分类;相似距离分类方法是把待判图像与一个标准图像相比,看他们是否相同或相似,标准图像用样本图像特征向量的均值来表示。通过计算待判图像与标准图像之间的相似距离来对待判图像进行分类。从而能更好的对储粮害虫图像进行处理和分析。下面是实现的源程序及相 关功能的注解:
%源程序: image2 m
i=imread('rice.tif');BW1=edge(i,'log');imagesc(BW1,[0 1]);     %如图1
i=imread('rice.tif');BW1=edge(i,'sobel');imagesc(BW1,[0 1]);   %如图2
i=imread('rice.tif');BW1=edge(i,'roberts');imagesc(BW1,[0 1]); %如图3
i=imread('rice.tif');BW1=edge(i,'canny');imagesc(BW1,[0 1]);    %如图4
i=imread('rice.tif');BW1=edge(i,'prewitt');imagesc(BW1,[0 1]);   %如图5
i=imread('rice.tif');BW1=edge(i,'zerocross');imagesc(BW1,[0 1]); %如图6
i=imread('rice.tif');a=im2bw(i);total=bwarea(a); total %计算 粮虫 图像的面积
i=imread('rice.tif');a=im2bw(i);total=bwperim(a)        %计算 粮虫 图像的周长
i=imread('rice.tif'); a=im2bw(i);image(a);bweuler(a)     %计算 粮虫 图像的欧拉数
i=imread('rice.tif'); a=im2bw(i);s=std2(a)         %计算 粮虫 图像的方差
i=imread('rice.tif'); a=im2bw(i);m=mean2(a)        %计算 粮虫 图像的均值
              
abcdef图images/blog_csdn_net/kw123/at5.gif" style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; border-top-width:0px; border-right-width:0px; border-bottom-width:0px; border-left-width:0px; border-style:initial; border-color:initial; border-top-style:none; border-right-style:none; border-bottom-style:none; border-left-style:none; border-width:initial; border-color:initial" />
图2 图像的 边缘检测方法比较
2.3        用形态学方法进行图像处理与分析
用形态学方法对灰度图像进行处理与分析的技术要点,即对灰度图像进行如下操作:去除图像的不均匀背景;用设置阈值的方法( thresholding )将结果图像转换成二值图像;通过成分标记( components labeling )返回图像中的目标对像属性,并计算目标对像的统计数字特征。
下面是实现的源程序及相关功能的注解:
%源程序: image3 m
a=imread('rice.tif');figure,imshow(a);      %读取和显示灰度图rice.tif,图a
background=imopen(a,strel('disk',15)); %取半径为15的圆盘结构元素对图像用开运算估计背景
figure,imshow( background);            %显示背景图,图b
figure,surf(double(background(1:16:end,1:16:end))),zlim([0 255]);   %显示背景的彩色表面,对16×16格取样,图c
b=imsubtract(a,background);figure,imshow(b)   %从原图像中减去背景图像,并显示结果图d
d=imadjust(b,stretchlim(b),[0 1]);figure,imshow(d); %调节对比度,并显示结果图e
level=graythresh(d);bw=im2bw(d,level);figure,imshow(bw) %转换成二值图像,图f
[labeled,numObjects]=bwlabel(bw,4);        %成分标记
grain=imcrop(labeled) %用鼠标选取实现交互式剪裁标成分的一部分
RGB_label=label2rgb(labeled,@spring,'c','shuffle'); % 一个标记矩阵转换成一个RGB图像
figure,imshow(RGB_label);    %显示RGB图像,图g
graindata=regionprops(labeled,'basic') %为rice的每一经阈值处理
allgrains=[graindata.Area] %点号存取graindata的所有元素的面积域并将该数据存入
max(allgrains)      %找最大谷粒的大小
biggrain=find(allgrains==ans) %使用find指令找出最大谷粒的成分标记
mean(allgrains)      %求平均粒径
hist(allgrains,15) %作包含15个方柱的显示谷粒大小分布的直方图,图h
 
       
abcd图images/blog_csdn_net/kw123/at6.gif" style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; border-top-width:0px; border-right-width:0px; border-bottom-width:0px; border-left-width:0px; border-style:initial; border-color:initial; border-top-style:none; border-right-style:none; border-bottom-style:none; border-left-style:none; border-width:initial; border-color:initial" />
efgh图images/blog_csdn_net/kw123/at7.gif" style="margin-top:0px; margin-right:0px; margin-bottom:0px; margin-left:0px; padding-top:0px; padding-right:0px; padding-bottom:0px; padding-left:0px; border-top-width:0px; border-right-width:0px; border-bottom-width:0px; border-left-width:0px; border-style:initial; border-color:initial; border-top-style:none; border-right-style:none; border-bottom-style:none; border-left-style:none; border-width:initial; border-color:initial" />
形态学方法
 
3 结束语
     MATLAB具有强大的图像处理能力,有许多经典的图像处理方法,我们在粮虫图像 增强处理过程中,在边缘的检测,以及特征的提取中,都取得了比较好的效果,同时,我们用
形态学方法对图像处理,能很好的提取 粮虫图像的特征参数,为我们的判断、识别粮虫作了很好的准备,成效显著。
 
参考文献:
[1]张兆礼,现代图像处理技术及 MATLAB实现 [M] ,人民邮电出版社,2001年
[2]章毓晋,图像处理和分析 [M] ,清华大学出版社,1999年
[3] 崔屹.图像处理与分析——数学形态学方法及其应用 [M] .北京:科学出版社, 2000
[4]潘峰,刘文予,朱光喜 MATLAB在图像处理与研究中的应用 [J] ,计算机应用研究,1999,16(12) 73-75

http://www.niftyadmin.cn/n/791151.html

相关文章

数据表自增主键(int)溢出解决方案整理

sql自增主键溢出解决方案: 简单粗暴法重置自增字段法偷换ID法笨方法注意注意 简单粗暴法 适用于数据不重要的情况下,可以进行情况,建议先备份数据 第一种 清空所有数据 --直接释放所有数据 --不能用delete:TRUNCATE瞬间解决…

概率论02 概率公理

概率论早期用于研究赌博中的概率事件。赌徒对 于结果的判断基于直觉,但高明的赌徒尝试从理性的角度来理解。然而,赌博中的一些结果似乎有矛盾。比如掷一个骰子,每个数字出现的概率相等,都是1/6。 然而,如果有两个骰子&…

散列使得查询速度提升,HashMap如此快的原因

本文来自《Thinking in Java 3th》 散列的价值在于速度:散列使得查询得以快速进行。由于速度的瓶颈是对“键”的查询,因此解决的方案之一就是保持“键”的排序状态,然后使用Collections.binarySearch进行查询。散列则更进一步,他将…

SQL Server语句查找约束,删除含默认值字段

包含有默认值的字段删除需要先删除约束,则需要查找约束名 删除约束: ALTER TABLE dbo.表名DROP CONSTRAINT DF__XXXXXI__Curre__19EB91BA查找表相关约束: select * from sysobjects where parent_obj in(select id from sysobjects where na…

联 合(union) 结构

联 合(union) 1. 联合说明和联合变量定义 联合也是一种新的数据类型, 它是一种特殊形式的变量。 联合说明和联合变量定义与结构十分相似。其形式为: union 联合名{ 数据类型 成员名; 数据类型 成员名; ... } 联合变量名; 联合表示几个变量公用一个内存位置, 在不…

sqlserver

虚拟内存:内存的1.5倍数windows审计可以设置下,打开失败的审核,成功的审核不用打开本地计算机策略:计算机配置-windows设置-本地策略-审计 Windos BPA 与SQLServerBPA:最佳实践的工具可以去微软网站上下载内存&#xf…

Redis学习手册(管线)

一、请求应答协议和RTT: Redis是一种典型的基于C/S模型的TCP服务器。在客户端与服务器的通讯过程中,通常都是客户端率先发起请求,服务器在接收到请求后执行相应的任务,最后再将获取的数据或处理结果以应答的方式发送给客户端。…

支持不同屏幕尺寸

https://developer.android.google.cn/training/multiscreen/screensizes.html#TaskUseSWQuali 本课程将向您介绍如何通过下列方法支持不同的屏幕尺寸: 确保您的布局能够根据屏幕适当地调整大小根据屏幕配置提供合适的 UI 布局确保对正确的屏幕应用正确的布局提供…