三、图像直方图变换和几何变换

  • 直方图变换
  • 灰度变换
  • 点运算
  • 几何变换

直方图变换

1.灰度直方图

灰度直方图:数字图像中每一灰度级像素出现的频次(该灰度级的像素数目)(也可以标准化到概率的表示)

灰度直方图性质

  • 无空间信息。(一种值的统计,丢弃位置信息)
  • 直方图与图像一对多的关系
  • 可叠加性(全图=子图叠加)

直方图反映图像的清晰程度,直方图均匀分布时,图像最清晰。

判定一幅图像是否清晰,查看是否合理的利用了全部允许的灰度级。

一幅图像应该尽可能利用全部的灰度级

2.直方图均衡化

直方图修正:通过灰度映射函数$G_{new} = T(G_{old})$,将原灰度直方图改造成所希望的直方图。

直方图均衡化是一种最常用的直方图修正,把直方图分布改造成均匀直方图分布,均衡化后,图像直方图是平直的,即各灰度级出现频数相同,图像看起来更清晰了。

直方图均衡化灰度映射函数

  • 连续灰度级情况:概率密度函数为P(r),0<= r <= 1,代表灰度级。

    变换函数s=T(r),使直方图变平直。

    要求:

    • [0,1]范围内,T(r)是单增函数,且T的值域为[0,1]
    • 反变换函数为单减函数,值域也为[0,1]。

    变换示意图:图1
    图片.png

变换函数T:图2
图片.png
  • 数字图像的直方图均衡化:设总像素n个,分L个灰度级,第k个灰度级出现的概率P(Rk)=Nk/N,Nk表示第k个灰度级出现的频数。

    变换函数:连续变换函数离散化,概率求和。公式如下,图3
    图片.png

数字图像灰度直方图均衡化步骤(8个灰度级为例),如图4:
图片.png

Matlab处理

  • i2 = histeq(i1),对i1直方图均衡化
  • imhist(i2) ,绘制i2的直方图
  • i2 = adapthisteq(i1),改进的直方图均衡化效果,针对空间信息做了改进。

具体情况:若原图各个灰度等级都存在,但分布不均,均衡化后虽然分布很平直,但是可能变换后的灰度等级缩小了,变换到了一个更小的灰度等级空间,此时可能效果并不好,所有具体情况要具体处理。如下图5
图片.png

3.直方图规定化(直方图匹配)

修改一幅图像的直方图,使得它与另一幅图像的直方图匹配或具有一种预先规定的函数情况。

目标:突出感兴趣的灰度范围,改善图像质量。

场景:上一小节,我们将灰度分布不均的图像通过均衡化转换为灰度理论均匀(分布概率密度曲线平直)的图像,增强了图像效果,但是实际场景,我们可能要突出某一些部分,又或是我们发现灰度在靠近0和1的部分太暗或太亮会导致细节模糊甚至丢失,自然的我们想到类似于均衡变换,将不均的概率分布曲线转换成我们特定的预设的一种灰度分布上(如高斯分布),以实现我们需要的增强效果。

方法:1)直接通过f到g的映射,f为原函数,g为变换后的函数,但过程可能很复杂。2)通过均衡变换为中介,将原图灰度分布f1和预设的直方图分布f2都做一个变换到均衡分布,分布使用映射函数s和t,那么对原图做s变换,再做t的反变换就得到了f2的分布。过程简单。

步骤如图6所示:


图片.png

预设分布:规定化的效果较好,但是前提是需要知道图像的变换的较好的预设分布,这里需要根据具体情况分析,比如根据图中的场景,能分析该图主要应该呈现两种色调,那么对预设的分布,我们可以给出一种“双峰”的灰度分布,那么处理后的图像就会趋于呈现两种色调。

特例:二值图,双峰分布图中间添加阈值。


灰度变换

场景:曝光不足或过度等原因,产生对比度不足,使图像细节分辨不清。

方法:使用灰度变换方法解决这些问题。

对比度:简单讲就是最白与最黑的亮度单位的相除值,体现的是灰度级的max和min的极差。

灰度级变换:空间域点运算,通过某个变换函数有:g(x,y)=T(f(x,y)),T即为变换函数。也可以写作R = T(r)

1.线性灰度变换

变换函数T为线性函数。

  • 加常数:会缩小动态范围,降低对比度,调节整体亮度,可能会损失某一部分灰度等级。如下图所示,图7
    图片.png

(特例)图像反转:g(x,y)=255-f(x,y),简单理解为"黑白颠倒".

  • 乘常数:g(x,y)=Cf(x,y).改变动态范围。

  • 分段线性变换:变换函数采用分段的线性函数,突出感兴趣的部分。

    (特例)削波,cliping。

    (特例)阈值化,thresholding。二值图。

    (特例)灰度窗口变换,将某一区间的灰度级和其他部分(背景)分开。

非线性灰度变换

  • 对数变化,低灰度区扩展,高灰度区压缩
  • 之所变化,高灰度区扩展,低灰度区抑制。
  • 幂函数。
  • LUT变换,Look Up Table,查找表。一种映射表。

Matlab处理

  • bc = imcomplement(b),图像反转
  • th = imadjust(t,[],[],0.5),用于进行图像的灰度变换

图像运算

1.算术运算:加减乘除

  • 加法:C(x,y)=A(x,y)+B(x,y)。去除“叠加性”噪音;生成图像叠加效果。
  • 减法:与加法类似。
  • 乘法:C(x,y)=A(x,y)*B(x,y)。局部显示;二值蒙版图像与原图像做乘法。
  • 除法:不常用

2.逻辑运算:与或非

3.比较运算:如,取平均,最大,最小


图像几何变换

几何失真分为系统失真和非系统失真,系统失真是有规律的、能预测的,非系统失真则是随机的。

  • 镜头畸变
  • 遥感图像矫正:飞行器和地球相对运动造成呈现扫描不规整。
  • 图像配准:工业生产、医院中装置定位。

几何变换是图像中物体的空间变换,可以看成是图像内各物体在图像内移动的过程,如转动、扭曲、倾斜、拉伸。

1.基本几何变换的定义

原图为f(x,y),变换为,x'=T1(x,y),y'=T2(x,y),几何变换仅对x,y坐标做变换,灰度值不变。(注意:这里的变换不简单为单个变量的变换,如x'的变换实际上同时涉及变量x和y)

目标图像为g(x,y)=f(T1(x,y),T2(x,y))

2.常用的几何变换

  • 平移变换。g(x,y)=f(x+tx,y+ty),原图平移向量为(tx,ty)。(这里需要注意计算机呈像中的坐标选取,是左上角为坐标原点的,理论研究中采用常用的数学坐标)。写做矩阵形式为,图8
    图片.png
  • 镜像:水平镜像和垂直镜像

    • 水平镜像:沿Y轴翻转。g(x,y)=f(width-x,y),矩阵形式为图9
      图片.png
    • 垂直镜像:沿x轴翻转。g(x,y)=f(x,heigh-y),矩阵形式为图10
      图片.png
  • 转置:x,y坐标对换。与旋转是不同的,事实上,转置后的图与旋转90度后的图是水平镜像关系。矩阵表示如图11
    图片.png
  • 旋转变换:绕原点旋转a度,(注:逆时针为正向角度)。旋转后画布变大,图像增大。数学关系用极坐标表示较为方便。如图12
    图片.png

    通常的做法,是以图像中心做旋转,方法:

    • 图像中心平移到原点
    • 顺时针以原点做旋转
    • 图像中心平移回原坐标

    以上三个变换可以写成三种变换的矩阵相乘的形式,就可以一步到位。

    问题:旋转中会出现锯齿、网纹、断裂。

    • 像素的方向是固定的,纵横。旋转的时候并不会按某一个旋转角度分布像素,这样旋转后像素点就会有交错,不规整,错位。像素排列不完全按照原有的相邻关系。
    • 计算过程中,xy的映射涉及到三角函数,会进行浮点数取整,最终造成某些点空洞(没有取值),漏点

    问题的本质都是应为像素值填充不是连续的

    解决办法:插值填充

  • 缩放变换:缩小的时候要满足采样定理,否则会发生信息丢失;放大的时候需要对空位填入适当的新值,是信息的估计。矩阵表示如下图13.
    图片.png
  • 拉伸变换:混合的几何变换,或者说是几何变换的一般形式。如下图14
    图片.png

3.灰度级差值

解决的问题:旋转中出现的漏点、放大中新增的空点、拉伸中的空点,都存在未知像素值的点。

解决方法:插值法,利用邻域的像素来估计新的像素值。

a)最邻近插值:重复最临近点,取最近点的像素值。简单,但效果一般,放大倍数太大时会出现马赛克现象。

b)双线性插值:根据该空点上下左右4个点进行两次插值。f(x,y)=ax+by+cxy+d。(xy两个方向上都取线性变换值)

c)三次立方插值(立方卷积插值):差值函数为S(x)(是一个拟合的正弦差值函数,sinx/x,这是信息论中已知的优秀的差值算法,认为图像中的任何两个连续点的灰度值不是线性变换,而是一种sinx/x的函数,故采用拟合该函数的一个立方差值函数来代替计算),如下图15

图片.png

待求像素的灰度值由周围16个点的灰度值加权内插得到,计算量大,效果较好。矩阵表示为图16
图片.png


实践任务

Matlab和Python分别实现下列任务

  • 加载图像
  • 预备任务:彩色图像到灰度图像的变换(因为之后的学习大多处理灰度图,所有需要将彩色图变换到灰度图)
  • 实践1:灰度图及其灰度直方图,和均衡化后的图及其直方图,4个subplot做对比呈现
  • 实践2:灰度图按高斯分布和双峰分布做直方图匹配,给出4个subplot对比呈现
  • 实践3:图像旋转,及插值处理。
  • 实践4:图像高倍放大,及插值算法处理比较。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容