美文网首页
第二章 图像的点运算

第二章 图像的点运算

作者: plus先生 | 来源:发表于2017-02-20 19:56 被阅读382次

图像的点运算主要用于改变一副图像的灰度分布范围。操作对象是单个像素值,输出像素值只与输入像素值有关。

灰度直方图

横坐标表示图像的灰度值,取值为0~255
纵坐标表示出现次数的多少货概率的高低。
matlab中,函数imhist()来获得灰度直方图。imhist(I, n) n可指定灰度级数。
[counts1, x] = imhist(…)
返回值counts为直方图的数据向量,counts(i)表示第i个灰度区间中的像素数目。
stem()函数绘制针形图。

图像灰度化方法

  • 平均值法:每个像素的值为RGB三个分量的平均值
  • 最大值法:每个像素的值为RGB三个分量的最大值
  • 加权平均值法:基于红绿蓝三个分量不同的权值,然后相加。
    R=G=B=0.299R+0.587G+0.114B为最合理的灰度图像
    利用r = a(:,:,1);即可提取出R色彩灰度图。GB同理。

灰度线性变换

灰度线性变换,就是将图像的像素值通过指定的线性函数进行变换,以此增强或者减弱图像的灰度。

g(x,y) = k·f(x,y) + d

  • k>1时
    此时用于增加图像对比度,图像的像素值在变换后全部增大,整体显示效果增强。
  • k=1时
    此时用于调节图像亮度。通过改变d值来达到增加或者减少图像亮度的目的。
  • 0<k<1时
    此时效果与k>1时恰恰相反,图像的对比度和整体效果都被削弱了。
  • k<0时
    这种情况下,原始图像中较亮的区域会变暗,较暗的区域变量,若k=-1, d=255则可以实现反色效果。

matlab对于矩阵计算有着先天的优势,如果换一种环境,则需要优化处理方法。由于256中取值只对应256种变换结果,可使用灰度映射表的方法,对所有灰度取值提前进行变换运算,并将结果保存在一个大小为256的数组中,提高效率。

灰度非线性变换

灰度对数变换

基本形式为:

y=log(1+x)/b
函数图见p43

对数变换扩展低灰度值而压缩高灰度值,让图像灰度分布更加符合人的视觉特征。可以增加图像暗部的细节。

灰度幂次变换

基本表达式为:

y = cx^r

当指数稍大时,如r>=2时,变换曲线趋近于一条垂直线,产生的图像近乎全黑,故实际引用时会是它们取值在0和1之间。

y=255c(x/255)^r 修改变换公式,使x和y取值在0~255之间

  • r<1时,扩展低灰度值,压缩高灰度值,图像变亮
  • r>1时,扩展高灰度级,压缩低灰度级,图像变暗

幂次宾欢常用于显示设备的伽玛校正中。
matlab自带灰度变换基本函数imadjust()

%将low_in到high_in之间的值映射到low_out到high_out之间的值。
%默认均为[0 1],如果取为[0 1],[1 0]即可实现反色效果.
%gamma用于调整曲线形状,见p46

灰度指数变换

基本表达式为

y = b^(c(x-a))-1

指数变换扩展图像高灰度级,压缩低灰度级。

灰度拉伸

灰度拉伸为改变图像对比度的常用方法。
其与线性变换类似,不过采用的是分段线性变换。
通常用两个控制点(x1,y1),(x2,y2)分三段实现灰度拉伸。
中间线段斜率大于1,可以提高图像的对比度;小于1降低对比度。
若x1=x2,y1=0,y2=255,将产生一个二值图像。
见p51
由此观之,imadjust()的两个参数,low_in与high_in即为x1,x2; low_out与high_out即为y1,y2。用此函数可以轻松实现灰度拉伸。

灰度均衡

对于连续的灰度密度函数,均衡公式为:

连续均衡公式

离散型的灰度均衡公式为

离散型均衡公式

DB表示转化后的灰度值,DA是转化前的灰度值,Hi表示第i级的像素个数,A0为像素总数。
matlab中用histeq()函数实现灰度均衡化

直方图的规定化

规定化即为获得具有制定直方图的输出图像。又称直方图匹配。
实现过程为现将原图做均衡化,
再将匹配图像也做均衡处理,两者便相等,再求得反函数,可得:

z = F-1(s)=F-1[T(r)]

带入原图像素r即可获得输出图像。
matlab中应用J = histeq(I, hgram)来实现。
可将J变为以hgram为直方图的图像。

以上内容来自《数字图像处理:原理与实践(matlab版)》左飞著,电子工业出版社。此为学习笔记。

相关文章

  • Opencv第六课--图像的运算

    数字图像的运算 图像处理中最重要的内容之一就是图像的运算,图像像素的运算包括点运算、代数运算、逻辑运算,图像的几何...

  • 图像的基本操作实现

    图像的点运算实现 线性点运算的实现 图像的线性点运算的实现代码如下所示: 图像线性点运算的实现效果如上图所示,当:...

  • 第二章 图像的点运算

    图像的点运算主要用于改变一副图像的灰度分布范围。操作对象是单个像素值,输出像素值只与输入像素值有关。 灰度直方图 ...

  • 图像处理算法的理论与实践

    图像处理算法的理论与实践 1. 图像的点运算 点运算指的是对图像中的每个像素依次进行同样的灰度变换运算,通常用于改...

  • ML之图像处理常识篇1

    基本常识篇 1、数字图像: 2、数字图像的运算:全局运算,点运算,局部运算 3、噪声:加性或乘性 4、对比度:灰度...

  • 图像的点运算3

    伽马变换 伽马变换又名指数变换或幂次变换,是另一种常用的灰度非线性变换。 一般表达式如下, 其中,x与y的取值范围...

  • 图像的点运算1

    灰度直方图 灰度直方图是一个二维图,横坐标为图像中各个像素点的灰度级别,纵坐标表示具有各个灰度级别的像素在图像中出...

  • 图像的点运算2

    灰度的线性变换 线性灰度变换函数f(x)是一个一维线性函数。可以用 进行表示,其中k是线性函数的斜率,k是线性函数...

  • OpenCV-Python学习(七):图像的基本运算及mask掩

    目录: 1.图像的基本运算加、减法图像混合按位运算 2.mask掩膜 一、图像的基本运算 加、减法 饱和运算:当运...

  • 图像的基本操作

    图像的点运算 线性点运算定义一像素线性点运算函数,如下所示:对以上函数,取不同参数,会取得不同的效果:若 ,经过运...

网友评论

      本文标题:第二章 图像的点运算

      本文链接:https://www.haomeiwen.com/subject/oaiswttx.html