基于MATLAB的水果识别的数字图像处理

发布时间 : 星期二 文章基于MATLAB的水果识别的数字图像处理更新完毕开始阅读

(2)图像去噪和对比度增强

图像有噪声和对比度较差的时候,这些会给最终的识别分类带来困难。所以必须先对所给图像进行去噪和增强对比度的预处理。 (3)图像的二值化

所谓图像的二值化,就是使图像上所有点的灰度值只有两种可能,不为“0”就为“255”,也就是使整个图像呈现出明显的黑白效果。

(4)图像特征提取,特征参数计算

本课题中需要提取的图像特征有:面积,周长,弧度,颜色等等。利用这些参数就能将水果相互区分开来。

3.2 图像预处理

3.2.1图像数据获取

计算机图像是图像以计算机文件的形式存在的,实质上是一些数字代码,它与通常所说的(传统意义上的)图像最大区别是计算机的图像是数据化的,而不是模拟化的(数字图像是模拟图像数据化的结果),它是一般图像的离散采样,因而具有一些传统图像中所没有的概念:在计算机上,由更基本的单元构成,这些基本单元称为“像素”。像素是被逐点描述的,具有一个明确的位置和色彩数值。“计算机读取图像”就是把图像以数字代码形式存储起来。用Matlab实现图像读取比C++简单,图像数据以矩阵的形式存放,其扫描规则是从左向右,从上到下。 程序如下: function Shibie()

CaiTu=imread('D:\\图片\\fruit01.jpg'); %读取图像

1 1

HuiTu=rgb2gray(CaiTu); YuanTu=im2double(HuiTu);

figure(1);imshow(YuanTu); title('灰度图像'); %显示原彩色图像的灰度图像

其中“D:\\MATLAB6p1\\work\\fruit01.jpg”是图像文件存放的路径,YuanTu是一个矩阵,它以数字形式表示图像。Matlab以“%”后的文字作注释。

读取的灰度图像如图3-2 所示:

图3-2灰度图像

3.2.2 图像二值化处理

二值化就是把具有多级灰度的输入图像变换成灰度值只有0或1两种值的输出图像。

图像阈值分割是最常用的图像分割技术,主要利用图像中背景与对象之间的灰度差异。理想状态下,背景与对象之间的灰度差异很大,且同一个对象具有基本相同的灰度值。

2 1

为了得到理想的二值图像,一般采用阈值分割技术。它对物体与背景有较强对比的图像的分割特别有效,计算简单而且总能用封闭、连通的边界定义不交叠的区域。二值化处理的关键是确定适当的阈值Th。所谓的阈值,是指在图像分割时,作为区分物体与背景像素的门限,大于或等于阈值的像素属于物体,其他像素则属于背景。如果阈值过大,过多的目标点被误认为背景点,目标被削弱,甚至会消失;如果阈值过小,过多的背景点被误认为目标点,噪声过大,目标特性也会被削弱,不利于正确识别。所有灰度大于或等于阈值的像素被判决为属于物体,灰度值用\表示;否则这些像素点被排除在物体区域以外,灰度值为\,表示背景。这样一来物体的边界就成为这样一些内部的点的集合,这些点都至少有一个邻点不属于该物体。通过二值化,设置一个阈值,把明亮的部分(图像中水果的灰度值比背景灰度值大)提取出来,即实现了目标对象的提取。

阈值法是一种简单有效的图像分割方法,它用一个或几个阈值将图像的灰度级分为几个部分,将属于同一部分的像素视为相同的物体。利用阈值法,对于物体与背景之间存在明显差别(对比)的景物,分割效果十分有效。只要阈值选取合适,将每个像素与之比较,进行二值化或者半二值化处理,就可以很好地将对象从背景中分离出来。二值化后的图像如图3-3所示,阈值处理后图像如图3-4所示:

3 1

3-3二值化图像

1

4

联系合同范文客服:xxxxx#qq.com(#替换为@)