灰度变换
灰度变换函数
对于以像素存储的数字图像来说,可对像素进行相应的操作,可得到处理过后的图像。而对像素邻域进行计算的的叫滤波,对单像素进行变换的叫映射,而这个映射关系就是变换函数。
本文主要介绍的一些主要的灰度变换函数。
1、反转变换
反转变换可将图像的灰度级进行反转,公式可参考下式:
其中,[0, L-1]为灰度级范围, r为原图像灰度级, s为变换图像灰度级。
参考代码
void inverse(Mat &img)
{
// 初始化图像迭代器
MatIterator_<uchar> srcIterStart = img.begin<uchar>();
MatIterator_<uchar> srcIterEnd = img.end<uchar>();
while (srcIterStart != srcIterEnd)
{
*srcIterStart = 255 - *srcIterStart;
srcIterStart++;
}
}
效果图与应用场景
反转图像的使用场景一般用于对原始图像难以分析出不同之处,例如分析乳房组织时,用反转图像更易观察。
2、对数变换
对数变换可分为对数变换和反对数变换,而反对数变换是属于伽马变化(幂律变换)的范围。对数变换公式可参考下列公式:
对数变换可拉伸暗像素值,压缩亮像素值。
参考代码
void log_image(Mat &img, uchar rate = 1)
{
// 初始化图像迭代器
MatIterator_<uchar> srcIterStart = img.begin<uchar>(