图像的运算

来源:互联网 发布:modo软件多少钱 编辑:程序博客网 时间:2024/05/16 06:28

点运算

对于一幅图像的运算,如果输出图像的每个像素点灰度值是由输入图像的每个像素来决定的,则这样的图像运算称为点运算(point operation)。点运算的结果由灰度变换函数(gray-scale transformation,GST)来确定。

线性点运算

当GST函数为线性函数时,对应的变换为线性变换。当a=1,b=0时,图像不发生变换;当a>1,b非负时,图像的各个像素点的灰度值都增加,图像的对比度增强;当0<a<1,b非负时,图像的各个像素点灰度值减小,图像对比度变小;当a<0时,图像中‘黑白颠倒’。当图像的曝光不足或者过曝时,图像的清晰度不是很好,这是可以通过线性点运算来做一些恢复。当然,若是严重过曝或者欠曝,这种恢复作用是很有限的。

非线性点运算

很显然,非线性点运算的GST函数是一个非线性函数。考虑到由于成像设备的因素会对图像形成非线性的畸变或者需要强化图像中的目标区域,引入非线性变换来进行‘修正’。下式是一个常用的非线性变换公式。其效果是中间的灰度值对比度拉大,两边变化不大。下示曲线是一个简单的例子。
 

应用——直方图修正

点运算在图像处理中对图像的直方图有很大的影响。线性的点运算只是将直方图先拉伸然后平移,其大致的形状并没有发生变化;非线性变换会使得直方图的形状也发生改变。在matlab中提供了几个直方图的修正函数——直方图均衡化:histeq(),adapthisteq()。直方图均衡化是对图像做非线性点运算来增强图像对比度的方法,尤其是当图像中有用数据的对比度相当接近时。其基本的思想是将原始图像的灰度比较集中的某个灰度区间转换为在全部灰度范围内的均匀分布,体现在直方图上就是图像的直方图变得‘’平坦‘’了,不在有特别明显的‘’波峰‘’与‘’波谷‘’。

代数运算

加法

加法运算通常运用于图像的平均值降噪等场合。图像的相加一般是利用同一场景的多幅图像求平均,以便达到较少噪声的目的。对于一些经过长距离利用模拟通信方式传输的图像,利用加法运算降噪是必须的。当噪声可以用独立同分布的随机模型来描述时,利用求均值来提高信噪比非常有效。matlab提供了相关的函数:imadd()。

减法

图像相减常常在实际应用中用来检测运动的目标。差影法也是利用减法运算将同一场景的不同时间段拍摄的图像或者同一副图像的不同波段的图像进行相减,可以用来进行动态监测、运动目标监测和跟踪、图像背景消除及目标识别。matlab中也有相关的减法函数:imsubtract()。其最重要的一个运用就是求图像的梯度,其定义如下:
由于图像是离散的数据,因此可以利用下式来近似的计算图像的梯度(当然,这个式子在图像边界计算的时候是有困难的,只是提供了一个方式):

乘法

乘法运算可以用来遮住图像的某些部分。先定义一个提取矩阵,大小与图像矩阵一般,将感兴趣的区域设置为1,需要遮住的区域设置为0(其实提取矩阵可以看成一幅二值图像)。然后利用matlab中内置的‘’ .* ‘’运算符对这两幅图像图像做乘法就能获得所需的部分图像。

除法

图像的除法运算可以用来校正由于照明或者传感器的非均匀性造成的图像灰度阴影,还可用于产生比率图像。其运算方式与乘法类似,不过采用的运算符为‘’ ./ ‘’。在matlab中提供了相关的函数:imdivide()。

应用——区域处理

1、区域提取。matlab中提供了区域提取矩阵(掩模图像)的生成方法:roipoly()、roicolor()、poly2mask()。
2、区域滤波。matlab中提供了区域滤波的函数:roifilt2()。
3、区域填充。matlab中提供了区域填充的函数:roifill()。
0 0
原创粉丝点击