您的位置 首页 编程

图画处理之图画的灰度变换

图像处理之图像的灰度变换-灰度变换函数描述了输入灰度值和输出灰度值之间变换关系,一旦灰度变换函数确定下来了,那么其输出的灰度值也就确定了。可见灰度变换函数的性质就决定了灰度变换所能达到的效果。

前面几篇文章介绍的是图画的空间域滤波,其对像素的处理都是依据像素的某一邻域进行的。本文介绍的图画的灰度改换则不同,其对像素的核算只是依赖于当时像素和灰度改换函数。

灰度改换也被称为图画的点运算(只针对图画的某一像素点)是一切图画处理技能中最简略的技能,其改换方式如下:
s = T ( r )
其间,T 是灰度改换函数;r 是改换前的灰度;s 是改换后的像素。

图画灰度改换的有以下作用:
  •  改进图画的质量,使图画能够显现更多的细节,进步图画的对比度(对比度拉伸)
  •  有挑选的杰出图画感兴趣的特征或许按捺图画中不需要的特征
  •  能够有用的改动图画的直方图散布,使像素的散布更为均匀

常见的灰度改换

灰度改换函数描绘了输入灰度值和输出灰度值之间改换联系,一旦灰度改换函数确认下来了,那么其输出的灰度值也就确认了。可见灰度改换函数的性质就决议了灰度改换所能到达的作用。

用于图画灰度改换的函数主要有以下三种:
  •  线性函数 (图画回转)
  •  对数函数:对数和反对数改换
  •  幂律函数:n次幂和n次开方改换

图画处理之图画的灰度改换


上图给出了几种常见灰度改换函数的曲线图,依据这几种常见函数的曲线形状,能够知道这几种改换的所能到达的作用。例如,对数改换和幂律改换都能完成图画灰度级的扩展/紧缩,别的对数改换还有一个重要的性质,它能紧缩图画灰度值改换较大的图画的动态规模(例如,傅立叶改换的频谱显现)。

线性改换

令 r 为改换前的灰度,s为改换后的灰度,则线性改换的函数:
s = a ⋅ r + b
其间,a 为直线的斜率,b 为在 y 轴的截距。挑选不同的 a,b 值会有不同的作用:
  •  a > 1,添加图画的对比度
  •  a < 1,减小图画的对比度
  •  a = 1 且 b ≠ 0,图画全体的灰度值上移或许下移,也便是图画全体变亮或许变暗,不会改动图画的对比度。
  •  a < 0 且 b = 0,图画的亮区域变暗,暗区域变亮
  •  a = 1 且 b = 0,稳定改换,不变
  •  a = −1 且 b = 255,图画回转。

在进行图画增强时,上述的线性改换函数用的较多的便是图画回转了,依据上面的参数,图画回转的改换函数为:s = 255 − s。图画回转得到的是图画的负片,能够有用的增强在图画暗区域的白色或许灰色细节。其作用如下:

图画处理之图画的灰度改换


图画回转的完成是比较简略的,在 OpenCV 中有对 Mat 的运算符重载,能够直接 Mat r = 255 – img 或许 ~img 来完成。

对数改换

对数改换的通用公式是:
s = clog ( 1 + r )
其间,c 是一个常数,,假定 r ≥ 0,依据上图中的对数函数的曲线能够看出:对数改换,将源图画中规模较窄的低灰度值映射到规模较宽的灰度区间,一起将规模较宽的高灰度值区间映射为较窄的灰度区间,然后扩展了暗像素的值,紧缩了高灰度的值,能够对图画中低灰度细节进行增强。;从函数曲线也能够看出,反对数函数的曲线和对数的曲线是对称的,在应用到图画改换其成果是相反的,反对数改换的作用是紧缩灰度值较低的区间,扩展高灰度值的区间。
依据 OpenCV 的完成,其对数改换的代码如下:

float pixels[256]; for (int i = 0; i < 256; i++) pixels[i] = log(1 + i); Mat imageLog(image.size(), CV_32FC3); for (int i = 0; i < image.rows; i++) { for (int j = 0; j < image.cols; j++) { imageLog.at(i, j)[0] = pixels[image.at(i, j)[0]]; imageLog.at(i, j)[1] = pixels[image.at(i, j)[1]]; imageLog.at(i, j)[2] = pixels[image.at(i, j)[2]]; } } //归一化到0~255 normalize(imageLog, imageLog, 0, 255, CV_MINMAX); //转换成8bit图画显现 convertScaleAbs(imageLog, imageLog);

这运用的对数函数的底为10。因为灰度改换是灰度值之间的1对1的映射,而灰度值区间一般为[0,255],所以在进行灰度改换时,一般运用查表法。也便是,现将每个灰度值的映射后的成果核算出来,在改换时,经过查表得到改换后的灰度值。履行上面成果得到的成果如下:

图画处理之图画的灰度改换


左面为原图画,其拍照环境较暗,无法分辨出许多的细节;右边为改换后的图画,整个图画亮堂许多,也能分辨出原图中处于暗区域的狗狗的更多细节。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/93136.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部