在图像的像素点灰度值基本集中在一个段落的时候,图像中物体与物体之间的区别是很不明显的(也就是说图像的对比度比较低)。这种情况可以采用“线性变换”来对图像加以处理。
图像的线性变换,是比较容易理解的。由线性变换公式y=kx+b可以想到,假设图像的像素点灰度值为x,经由线性变换输出为y,这个时候用y替换掉原像素点的灰度值x则实现了线性映射。其作用是当图像像素的灰度值集中在一定范围如[a,b]时,可以经由线性变换公式将其映射到新的范围[c,d]。如果将c取为0,将d取为255,则映射到整个灰度级中,即最大可能的加大了图像的对比度。经过上面的分析,再由数学解方程的思路我们知道只要定出a,b,c,d四个值则可以得到线性变换公式,进而由线性变换公式来对图像进行线性变换。
由上面的分析我们可以大致的知道线性变换的应用是要在一些灰度值相对集中的图像才能取得好的效果的。因为在线性变换之前,我们先搜索出图像的灰度最小、最大值作为a,b,如果a接近0而b接近255则效果是可想而知的。是故在应用线性变换的过程中需要特别注意的是如何排除个别点的干扰。
ok,废话不多说,主要实现代码如下:
/*******************图像处理部分******************/
/****************