参赛队号#1321
四、符号说明
R像素点的原灰度 S为变换后的灰度
P(j级灰度值的概率 rRj)是第nj是图像中j级灰度的像素总数 l为总灰度数目
n为图像中像素的数目
f(i,j)为还有噪声的图像 g(i,j)为平均化处理后的图像
A为一个二维数组
五、模型的准备
(1)位图
位图图像,称为点阵图像或绘制图像,是由称作像素的单个点组成的。当放大位图时,可以看见赖以构成整个图像的无数单个方块。位图是一个结构的集合体。
位图的优点是处理简单直观,能够有效的表现自然直观图,但它的不足之处是:图像数据量大,图像中只存储了像素信息,无法直接得到图像中各个图形的信息。 (2)矢量图形
图形可用数字方法描述和变换,能够对图形元素各部分进行分别控制,对图形 实施规则化的灵活变换处理;占用的存储空间相对点阵图像要小的多,易于保存和传输。 (3)矢量化处理
位图图像经过边缘提取、细化处理后,变成只有单点线宽的轮廓图形,此时仍是一 个简化了的二值图像,占有大量的存储空间。因此,将图形的二值点阵信息转换为矢 量信息,确定其图像,这一过程称为矢量化处理。
六、模型的建立与求解
6.1图像的预处理
为了提高矢量化的性能,我们需要对原始的灰度图像进行预处理。预处理的目的是在保证图像边缘信息的前提下,去除图像在输入过程中可能受到的污染,使得图像便于
2
参赛队号#1321
进行后续处理。
6.1.1图像的灰度化与二值化处理
(1)图像灰度化
在RGB模型中,彩色图像中的每个像素的颜色都由R、G、B三个分量决定,灰度范围为0-255。如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫做灰度值。一般都是彩色图像,并以JPG或者BMP的格式进行存储。但彩色图像占用的存储空间比灰色图像大很多,所以为了节省空间,并减小计算量,一般要将彩色图像转化为灰度图像。在对获取的彩色图像的灰度化处理过程中,一般有对三个分量加权平均,具体的转换公式为f(i,j)=0.299R(i,j)+0.587G(i,j)+0.114B(i,j))
方法二:平均值法
将彩色图像中的R、G、B三个分量的亮度求简单的平均值,将得到均值作为灰度值输出而得到灰度图。
方法三:最大值法
将彩色图像中的R、G、B三个分量中亮度的最大值作为灰度图的灰度值。【1】
(2)二值化处理
图像二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白效果。所有灰度大于或等于阀值的像素被判定为属于特定物体,其灰度值为255表示,否则这些像素点被排除在物体区域以外,灰度值为0,表示背景或者例外的物体区域。方法大致可以分为简单统计法、最大类间方差法、最小误差和平均误差法、模糊集法等。这些方法都有各自的适用范围和优缺点,它们的性能决定于图像本身的特性。
通过实验我们采用直方图统计法。图像直方图是图像各灰度值统计特性与图像灰度值的函数,统计图像中各个灰度级出现的次数或概率,也就是说直方图的纵坐标对应着灰度级在图像中出现的概率。
(3)图像的灰度化与二值化算法实现
1.首先,打开MATLAB软件,新建M文件。M文件是包括MATLAB代码的文件。读取图片文件中的数据,并将这些数据置于矩阵行列式中
2.通过Matlab函数rgb2gray,将真彩色图像转换为灰度图像。此时RGB并不发生变化。
3.确定灰度图像范围大小,并将图像UNITE8数据格式转化为double格式,利用MATLAB函数meshgrid生成网格采样点,产生以向量x为行,向量y为列的两个大小相同的矩阵,然后根据这些采样点来绘制出整个图形。
4. 以x为横坐标,y为纵坐标绘制图像,得到灰度处理与二值化处理后的图像。
6.1.2.图像的平滑处理
在图像的获取和传输过程中, 容易引入外界的干扰噪声,有时在模拟图像进行数字
3
参赛队号#1321
转换的过程中也会引入噪声.这些干扰可能会使原始图像中连续的均匀分布的灰度在某点突然变大或者陡然减小,这是在物体轮廓边缘才能够发生的灰度陡变,导致图像的质量变差,影响后续处理的准确性。图像平滑就是利用各种滤波方法对数字图像进行处理,得到平滑的图像。实际应用中,常见的方法有领域平均法、中值滤波法、梯度倒数加权平滑法。本文采用的是领域平均法。【2】
(1)领域平均法基础理论
领域平均法是一种直接在空间域上对图像进行平滑处理的方法。假设图像是由许多灰度恒定的小块组成,相邻像素空间具有高度的空间相关性,而噪声是统计独立的。因此,可用像素邻域内的各个像素灰度的平均值代替该像素的灰度,从而达到图像的平滑。它采用模板计算的思想,模板操作实现了一种邻域运算,即某个像素点的结果不仅与本像素灰度有关,而且与其邻域点的像素值有关。。邻域平均法用数学公式表达为:
设f(i,j)为给定的含有噪声的图像,经过邻域平均处理后的图像为g(i,j),则:
f(i,j),(i,j)?M, (3-1) N M所取邻域中各邻近像素的坐标,N是邻域中包含的邻近像素的个数。邻域平均法
g(i,j)???111?1的模板为:?111?,中间的黑点表示以该像素为中心元素,即该像素是要进行处理的
??9??111??像素。
邻域平均处理方法是以图像模糊为代价来减小噪声的,且模板尺寸越大,噪声减小的效果越显著。如果f(i,j)是噪声点,其邻近像素灰度与之相差很大,采用邻域平均法就是用邻近像素的平均值来代替它,这样能明显消弱噪声点,使邻域中灰度接近均匀,起到平滑灰度的作用。因此,邻域平均法具有良好的噪声平滑效果,是最简单的一种平滑方法。
(2)图像的平滑处理算法实现
程序中采用的是3×3的模板,即把当前图像f(i,j)和它周围8个像素的灰度值相加,然后将求得的平均值(除以9)作为该点的像素值。利用用imnoise()函数,找出含有噪声的图像
,令
(3-1)其中 M所取邻域中各邻
近像素的坐标,N是邻域中包含的邻近像素的个数,利用插值法,实现图像的平滑化。
1.打开MATLAB软件。利用函数imread用于读取图片文件C:/tmp/1.bmp中的数据, 2.进行一定的循环操作,首先是对灰度范围0-255这256个数用i进行表示赋值,接着按照在对每一行的任何一个元素进行分析基础上,对每一列的元素进行分析,也就是进行双循环,进行赋值运算。
先从外层循环i=2,进入里面的循环,j=2是j的第一项,执行函数体内的语句,
4
参赛队号#1321
j++,一直到j=255,接着再进行i++,时, 继续执行函数体内语句,直到所有的执行完,跳出双循环
3. Matlab中的imshow函数显示图像,得到平滑图像。
下图图一,图二分别是原图和灰化,平滑处理后的图片
6.2轮廓的提取与跟踪 6.2.1轮廓的提取
我们这里所说的图形是有明显的形状和线条特征, 但没有太复杂的颜色或纹理特征的简单图像。边缘是所要提取目标和背景的分界线,边界表明一个特征区域的终结与另一个特征区域的开始。利用Matlab进行图像的轮廓线处理,利用其强大的矩阵运算。
轮廓提取,是把给定黑白二值图像的外轮廓给提取出来。利用matlab 中提取图形轮廓的函数bwperim,使它可以提取图形的外轮廓,,但对图形区域内部的孔洞所围成的内部边缘不提取出来,即是最外面的边界进行提取。
我们提取轮廓的代码为 F2=bwfill(F1,'holes');(3-2)【3】
6.2.2轮廓的跟踪
轮廓跟踪就是通过顺序找出边缘点来跟踪边界的,轮廓提取后得到的是一些散乱的无序轮廓点,需要建立有序的点列。
对于一个简单二值图象闭合边界的轮廓跟踪算法:首先按从左到右,从上到下的顺序搜索,找到的第一个边界点一定是最左上方,记为A。它的右,右下,下,左下四个邻点中至少有一个是边界点,记为B。从开始B找起,按如图1所示的顺序(顺时针方向)右、右下??找相邻点中的边界点C。如果它的上下左右四个邻居都是黑点则不是边界点,否则是边界点。如果C就是A点,则表明已经转了一圈,否则从C点继续找,直到找到A为止。
6.2.3轮廓的特征点的确定
5

