1、 数字图像处理题目:彩色图像平滑处理主要算法的分析和实现 学院: 理学院 姓名: xxx 学号: 日期: 2009-6-3 彩色图像平滑处理主要算法的分析和实现摘要:本文主要讲述彩色图像的平滑处理,首先给出彩色图像平滑处理的算法数学模型及其彩色图像平滑处理的步骤,然后再举例说明其数学模型在实际的图像处理中的应用。通过本文读者可以对彩色图像的平滑处理有一定的了解,并且能够在日常生活中加以运用。关键词:平滑处理一:彩色图像处理基础(预备知识)我们把彩色图像处理细分成三个主要类别:(1)颜色变换。 它主要用于处理每个彩色平面的像素,该处理严格地以像素值为基础,而不是以它们的空间坐标为基础;(2)单独
2、彩色平面的空间处理。它主要对各个彩色平面进行空间滤波;(3)颜色向量处理。它主要同时处理彩色图像的所有分量。因为全彩色图像至少有三个分量,彩色像素实际上是向量。令 c 代表 RGB 彩色空间中的任意向量: c=RGB该公式表明 c 的分量是一幅彩色图像在一个点上的 RGB 分量。彩色分量是坐标 的函数,表示为(,)xy(,)(,)c(x,y)=,RGBxy对一个大小为 的图像来说,有 个这样的向量 ,其中,MNMN(,)cxy和 。0,12.x0,12.y在某些情况下,无论是一次处理彩色图像的一个平面,还是作为向量来处理,都会得到相同的结果。然而,它并不总是如此。为了使独立的彩色分量和以向量为
3、基础的处理都相同,必须满足两个条件:首先,该处理必须对向量和标量都可用;其次,对向量的每个分量的运算必须独立于其他分量。二:彩色图像平滑处理的算法数学模型单色图像的平滑(空间平均)可以通过空间掩膜中的相应系数(全是1)去乘所有像素的值,并用掩膜中元素的总数去除来实现。用空间掩膜平滑来处理彩色图像,该处理用处理灰度图像的相同方法来表达,只是代替单个像素。令 表示彩色图像中以为中心的邻域的一组坐标。在该邻域中 RGB 向xyS量的平均值是 (,)1(,xystScxyctK其中, 是邻域中像素的数量。它遵从向量加属性,即 (,)(,)(,)1,(,),)1,xyxyxystSstSstSRtcxy
4、GtKBt我们意识到该向量的每个分量都将作为我们希望得到的结果,该结果是对每一个分量图像执行邻域平均获得的,使用的是标准的灰度级邻域处理。从而我们可以得出这样的结论:用邻域平均的平滑可以在独立分量的基础上进行。若邻域平均直接在彩色向量空间进行,则其结果是相同的。三:彩色图像平滑的步骤用于图像平滑的 IPT 线性空间滤波器是用函数 fspecial 产生的,该函数带有三个选项之一:average 、 disk和gaussian 。一旦产生了滤波器,就可使用函数 imfilter 执行滤波。概念上,使用线性空间滤波器平滑 RGB 彩色图像 fc 的步骤如下:1.提取三幅分量图像:2.分别对每幅分量
5、图像滤波。3.重建滤波后的 RGB 图像四:彩色图像平滑的举例说明例 (a) (b)(c ) (d)图 4.1 (a)RGB 图像, (b)到(d )分别是红、绿、蓝分量图像(aa) (bb ) (cc)图 4.2 从左到右:图 4.1(a)的色调、饱和度和亮度分量图像(aaa) (bbb) (ccc)图 4.3 (aaa)分别平滑 R、G 和 B 图像平面得到的平滑后的 RGB 图像;(bbb)仅平滑 HSI 图像的亮度分量后的结果;(ccc)平滑所有三个 HSI 分量后 的结果图 4.1(a)显示了一幅 RGB 图像, (b)到(d)是其 RGB 分量图像,它们是用彩色图像平滑的步骤来提取
6、的。图 4.2(aa )到( cc)显示了(a )的三个HIS 分量图像,它们是使用函数 rgb2hsi 得到的。图 4.3(aaa )显示了图(a )所示图像平滑后的结果,平滑使用了带有replicate选项的 imfilter 函数和大小 像素的 average滤波器。平均25滤波器较大,足以产生有意义的模糊度。选择该尺寸的滤波器目的在于,证明在 RGB 空间的平滑和仅用被变换到 HSI 空间后图像的亮度分量达到的结果之间的不同。两种滤波后的结果是十分不同的。例如,除图像有点模糊外,图 4.3中花杂的顶部还出现了绿色边缘。原因很简单,即色调和饱和度分量没有变化,而平滑处理使得亮度分量的值变
7、化得以减少。合乎逻辑的情况是用相同的滤波器去平滑所有三个分量。然而,这将改变色调和饱和度之间的相对关系,从而产生无意义的颜色,如图 4.3(ccc)所示。一般来说,当掩膜的尺寸减小时,对 RGB 分量图像进行滤波和对同一幅HSI 图像的亮度分量进行滤波时,得到的差别也减小了。 fc=imread (test.jpg); fr=fc(:, :, 1); fg=fc(:, :, 2); fb=fc(:, :, 3); imshow(fc) figure, imshow(fr) figure, imshow(fg) figure, imshow(fb) h=rgb2hsi(fc); H=h(:, :
8、, 1); S=h(:, :, 2); I=h(:, :, 3); figure, imshow(H) figure, imshow(S) figure, imshow(I) w=fspecial(average, 25); I_filtered=imfilter(I, w, replicate); H_filtered=imfilter(H, w, replicate); S_filtered=imfilter(S, w, replicate); R_filtered=imfilter(fr, w, replicate); G_filtered=imfilter(fg, w, replicate); B_filtered=imfilter(fb, w, replicate); f=cat(3, R_filtered, G_filtered, B_filtered); h=cat(3, H, S, I_filtered); f1=hsi2rgb(h); f1=min(f1,1); f2=cat(3, H_filtered, S_filtered, I_filtered); figure, imshow(f) figure, imshow(f1) figure, imshow(f2)