图像变换——分段线性变换

原创 2013年12月05日 17:38:21

灰度变换法:

        一般成像系统只具有一定的亮度范围,亮度的最大值与最小值之比称为对比度。由于形成图像的系统亮度有限,常出现对比度不足的问题,使人眼观看图像时视觉效果很差,通过灰度变换法可以大大改善人的视觉效果。灰度变换法又可分为三种:线性分段性及分线性变换。

(1)线性变换

                 假定原图像f(x,y)的灰度范围为[a,b],希望变换后图像g(x,y)的灰度范围扩展至[c,d],线性变换表示式为:

                  g(x,y) = [(d - c) / (b - a)]f(x,y) + c

                  此关系式可用下图表示。若图像中大部分象素的灰度级分布在区间[a,b],很小部分的灰度级超出了此区间,为改善增强的效果,可令:

                  g(x , y) = c                                                 0 <  f(x , y) < a

                  g(x , y) = [(d - c) / (b -  a)] f(x , y) + c         a  <=   f(x , y) <=  b

                  g(x , y) = d                                                 b <  f(x , y) < Fmax

(2)分段线性变换

             为了突出感兴趣的目标或灰度区间,相对抑制那些不感兴趣的目标或灰度区间,常采用分段线性变换法。常用的是三段线性变换法,其数学表达式为:

             g(x , y) = (c / a)f(x , y)                                                 0 <  f(x , y) < a

             g(x , y) = [(d - c) / (b -  a)] f(x , y) + c                                       a  <=   f(x , y) <=  b

             g(x , y) = [(Gmax - d) / (Fmax - b)][f(x,y) - b + d]                                                b <  f(x , y) < Fmax

             上式对灰度区间[a,b]进行了线性变换,而灰度区间[0,a] [b , Fmax]受到了压缩。通过细心调整折线拐点的位置及控制分段直线的斜率,可对任一灰度区间进行扩展或压缩。这种变换适用于在黑色或白色附近有噪声干扰的情况。例如照片中的划痕,由于变换后0~a以及b~Fmax之间的灰度受到压缩,因而使噪声干扰得到减弱。

for (int i = 0; i < img_height - 1; i++)
  {
   for (int j = 0; j < img_width - 1; j++)
   {
    uchar cur = data[i * img_width + j];
    cur = ratio * cur + intercept;//线性变换

    data[i * img_width + j] = cur;
    if (cur < 0)
    {
     cur =0;
    }
    else if(cur > 255)
    {
     cur =255;
    }

    }

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

在MATLAB和OpenCV环境下写的灰度图像分段线性变换源码!

本文作者是OpenCV代码网,网址http://opencv66.net/ 分段线性变换的理论基础这里我就不多打字了,如有需要的可以通过链接查看我截的理论基础的图,不过要看懂下面的代码还真需要看...
  • wenhao_ir
  • wenhao_ir
  • 2016年04月19日 17:29
  • 1854

分段线性变换

直方图均衡化
  • YangYudong2014
  • YangYudong2014
  • 2014年10月08日 21:06
  • 1965

matlab分段灰度线性变换代码

  • 2013年04月26日 21:30
  • 543B
  • 下载

图像处理 灰度的线性变换

灰度的线性变换 Db = f(Da) = k*Da +b   k为斜率,b为y轴交点截距,Da为输入图像的灰度,Db为输出图像的灰度 三个有趣的结论,相信会对灰度变换的理解更加深刻: 1,k> ...
  • lipeng08
  • lipeng08
  • 2012年08月17日 23:58
  • 9666

OpenCV灰度值线性变换与分段线性变换

1.公式1.1线性变换假设原图像 f(x,y)的灰度范围为[a,b],希望变换后图像 g(x,y)的灰度范围扩展至[c,d],则灰度线性变换可表示为 1.2分段线性变换 2.C++代码实现#incl...
  • qq_32475739
  • qq_32475739
  • 2017年09月22日 16:56
  • 531

OpenCV数字图像处理十一:利用分段线性化处理图像 在某些情况效果很实用

分段线性变换 分段线性变换也叫做灰度线性拉伸,常用的是分三段分线性变换。如下图: 图中对灰度区间[a,b]进行了扩展,而灰度区间[0, a]和[b, Mf]收到了压缩。通过细心调整折线拐点的位置及...
  • zhubenfulovepoem
  • zhubenfulovepoem
  • 2013年06月02日 20:52
  • 4550

数字图像处理,经典对比度增强算法

直方图均衡化的英文名称是Histogram Equalization.    图像对比度增强的方法可以分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常...
  • EbowTang
  • EbowTang
  • 2014年07月28日 20:24
  • 15163

分段线性变换

直方图均衡化
  • YangYudong2014
  • YangYudong2014
  • 2014年10月08日 21:06
  • 1965

分段线性变换与直方图均衡化

分段线性变换两种实用的直方图修正技术:直方图均衡化和直方图规定化本章的典型案例分析  基于直方图均衡化的图像灰度归一化直方图匹配分段线性变换 分段线性变换有很多种, 包括灰度拉伸、 灰度窗...
  • u013898698
  • u013898698
  • 2017年02月12日 21:15
  • 1043

MATLAB 灰度线性变换

利用分段线性变换函数来增强图像对比度的方法实际是增强原图各个部分的反差,即增强输入图像中感兴趣的灰度区域,相对抑制那些不感兴趣的灰度区域。分段线性函数的主要优势在于它的形式可以任意合成,而其缺点是需要...
  • u013146742
  • u013146742
  • 2016年10月24日 23:12
  • 2171
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:图像变换——分段线性变换
举报原因:
原因补充:

(最多只允许输入30个字)