首页 理论教育图像处理的技巧和方法

图像处理的技巧和方法

【摘要】:图像处理算法主要负责对输入图像进行处理,比如缩放图像、灰度化图像等操作,将输入图像中不需要的部分剪裁或者对需要的信息进行强调。、是阶梯状边缘:处于图像中两个具有不同灰度值的相邻区域间;是脉冲状边缘:对应细条状的灰度值突变区域,可以看成两个背靠背的阶梯状边缘构成;图10-3图像的灰度处理是屋顶状边缘:边缘上升、下降沿都比较平缓,可以看成脉冲状边缘拉伸得到的。图10-5图像边缘提取

图像处理算法主要负责对输入图像进行处理,比如缩放图像、灰度化图像等操作,将输入图像中不需要的部分剪裁或者对需要的信息进行强调。为下一步计算进行准备。

(1)图像的灰度化

图像的灰度化算法,是很多图像处理流程的第一步;负责将在将图像的色彩信息尽量保留的情况下,将图像转化为用只用灰度表示的矩阵。这极大地压缩了后续需要处理的信息。

图像在计算机内定义于RGB空间的彩色图,其每个像素点的色彩由R、G、B三个分量共同决定。每个分量在内存所占的位数共同决定了图像深度,即每个像素点所占的字节数。以常见的24深度彩色RGB图来说,其三个分量各占1个字节,这样每个分量可以取值为0~255,这样一个像素点可以有1600多万(255×255×255)的颜色的变化范围。对这样一幅彩色图来说,其对应的灰度图则是只有8位的图像深度(可认为它是RGB三个分量相等),这也说明了灰度图图像处理所需的计算量确实较少。需要注意的是,虽然丢失了一些颜色等级,但是从整幅图像的整体和局部的色彩以及亮度等级分布特征来看,灰度图描述与彩色图的描述是一致的。

任何颜色都由红、绿、蓝三基色组成,假如原来某点的颜色为RGB(R,G,B),那么,我们可以通过下面几种方法,将其转换为灰度:

浮点算法     Gray=R·0.3+G·0.59+B·0.11

整数方法     Gray=(R·30+G·59+B·11)/100

平均值法     Gray=(R+G+B)/3

前两种取自opencv图像处理库的加权算法,图像的权重偏向于保留图像的绿色信息。主要由于人眼对绿色最为敏感,对蓝色最不敏感。

经过灰度处理后的图像如图10-3所示。

(2)图像边缘提取

图像中的边缘检测是像素灰度值发生剧烈变化而不连续的结果,边缘检测是常见的图像基元检测的基础。

图10-4展示了不同的图像边缘在灰度导数图像的变化。

(a)、(b)是阶梯状边缘:处于图像中两个具有不同灰度值的相邻区域间;

(c)是脉冲状边缘:对应细条状的灰度值突变区域,可以看成两个背靠背的阶梯状边缘构成;

图10-3 图像的灰度处理

(d)是屋顶状边缘:边缘上升、下降沿都比较平缓,可以看成脉冲状边缘拉伸得到的。

图10-4 图像边缘的导数变化情况

由(a)、(b)的二阶导数可以看到,二阶导数的过零点是边缘的位置;

由(c)的二阶导数可以看到,二阶导数的两个过零点分别对应脉冲的上升沿和下降沿,通过检测脉冲剖面的二阶导数的两个过零点可以确定脉冲的范围。

显然,函数的变化程度可以用一阶导数来表示。对于二维图像,其局部特征的显著变化可以用梯度来检测。梯度是函数变化的一种度量。定义为:

梯度是一矢量,函数的梯度给出了方向导数取最大的方向:

梯度的大小可以通过计算梯度的模来计算:

在程序中通过以下方法来近似计算点的梯度大小,从而得到灰度的变化情况。

该算子包含两组3×3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像灰度值,其公式如下:

具体计算如下:

图像的每一个像素的横向及纵向灰度值通过以下公式结合,来计算该点梯度的大小:

通常,为了提高效率使用不开平方的近似值:

|G|=|Gx|+|Gy|

边缘检测效果如图10-5所示。

图10-5 图像边缘提取