智能图像处理与分析识别课件:工程应用-米粒检测.pptx
智能图像处理与分析识别
《智能图像处理与分析识别》工程应用-米粒检测11.1米粒图像预处理11.2米粒图像轮廓提取11.3米粒图像特征提取11.4米粒分类
《智能图像处理与分析识别》背景食品检测在国家粮食安全中拥有举足轻重的地位。随着经济全球化程度的深入,中国巨大的市场消费力将吸引越来越多的国际米类品牌的进入,国内粮食市场的竞争将会日趋激烈,人们越来越注重粮食的安全和品质问题,粮食质量检测的市场潜力和发展空间日益显著。在粮食工业生产过程中,视觉检测可以代替人工检测,视觉检测方法即能够准确识别有质量问题的产品,又能够减轻操作者劳动强度,提高检测效率和准确率,对完善“精细农业”具有重要意义。
11.1米粒图像预处理由于拍摄背景会受到光照影响而深浅不一,因此先要对图像进行预处理,为后面米粒图像分割、特征提取、分类检测做准备。预处理主要包括的内容为:背景处理、图像灰度化、图像二值化、图像去噪、图像孔洞填充。米粒原图图像读取的Matlab程序代码如下:Img0=imread(mi.jpg);figure,imshow(Img0);title(‘原图’);
11.1米粒图像预处理11.1.1图像背景均匀化为了使二值化后的图像能够清楚地显示出黑白的位置,需要将图片背景色的亮度调整到相同颜色。观察原图,可以发现图像中心位置背景亮度强于其他部分亮度。因此需要先提取背景图像,再从原图中减去背景图像,以得到背景均匀的图像。图像背景提取的Matlab代码程序如下:Se=strel(‘disk’,35);Background=imopen(Img0,se);Figure,imshow(background);Title(‘背景图像);提取的背景图像
11.1米粒图像预处理接着,从原始图像中减去提取的背景图像,即可得到具有均匀背景的米粒图像。去除图像背景的Matlab代码如下所示:Img=Img0-background;figure,imshow(Img);title(去背景图);背景均匀化图像
11.1米粒图像预处理11.1.2图像二值化对图像进行二值化处理,以更好的分割出米粒所在的区域,方便后续米粒轮廓提取。图像的二值化使图像变得简单,而且数据量减小,能凸显出感兴趣目标的轮廓。对米粒图像进行二值化的Matlab程序代码如下:I=rgb2gray(Img);figure,imshow(I);title(灰度图);bw=imbinarize(I);figure,imshow(bw);title(二值化图);灰度图二值图
11.1米粒图像预处理11.1.3图像去噪及米粒填充由于拍摄的图像存在一些污点噪声,使得二值图中的背景上存在一些白色噪声,还有部分米粒区域出现黑色的小噪点。为了更好的提取米粒目标区域,需要对二值图进行图像去噪和米粒填充处理。处理背景噪声时,除了需要考虑一些污点产生的小像素,还需要注意一些面积远远大于米粒的一些噪声。在去除大对象时选用removeLargeArea()函数,去除小对象时选用bwareaopen()函数。针对米粒填充,则采用孔洞填充的方法填充米粒中的一些孔洞。
11.1米粒图像预处理图像去噪及米粒填充的Matlab程序代码如下:%%去噪bw=removeLargeArea(bw,8000);%去除二值图像中的大对象bw=bwareaopen(bw,300,8);%去除二值图像中的小对象figure,imshow(bw);title(去噪后图像);%%孔洞填充%填充中的间隙。%创建一个盘形结构元素,指定10像素的半径,以便填充最大的间隙。se=strel(disk,1);bw=imclose(bw,se);%闭运算%填充任何孔洞bw=imfill(bw,holes);figure,imshow(bw);title(填充图像)去噪后图像填充图像
11.2米粒图像轮廓提取采用bwboundaries()函数对二值图像中的米粒进行轮廓提取,函数内的参数选用‘noholes’能够避免搜索图像内部轮廓,从而加快处理速度。bwboundaries()返回两个参数。第一个返回参数B表示边界像素位置的单元格,B是一个P×1的数组,其中P代表连通体的个数,B内每一行是一个Q×2的矩阵,Q内每一行表示连通体的边界像素的位置坐标(第一列是纵坐标Y,第二列是横坐标X),Q为边界像素的个数。第二个参数L表示标签矩阵,其中标记了对象和孔。采用label2rgb函数对标签进行颜色转换,格式为:label2rgb(L,map,zerocolor)。其中,L为要转换的标签矩阵;map可