- 灰度级变换自动对比度调整
- 线性灰度级变换
- 非线性灰度级变换
- 直方图修正
- 灰度直方图
- 直方图性质
- 直方图修正法理论
- 直方图均衡化
- 直方图规定化
- 基于同态滤波的增强处理
- 基于彩色处理的增强处理
- Gamma校正
图像处理原彩图
为了改善图像的质量以及增强感兴趣部分。
如光线较暗的图像,需要增强图像的亮度;通过监测高速公路上的白线实现汽车自动驾驶时需要检测边线等。有针对单个像素点的点运算算法,也有针对像素局部领域的模板运算。
灰度级变换(自动对比度调整)
灰度级变换借助函数变换将输入的像素灰度值映射成一个新的输出值,通过改变像素的亮度值来增强图像
g(x,y)=T[f(x,y)]
其中,f(x,y)是原图像,g(x,y)是处理后的图像,T是变换函数
线性灰度级变换
1)基本线性变换
g(x,y)=f(x,y)?tanα
I=im2double(rgb2gray(imread(‘099.jpg‘)));
figure;
imshow(I),title(‘原始图像‘);
figure,imshow(0.5*I),title(‘tan为0.5‘);
figure,imshow(2*I),title(‘tan为2‘);
2)窗口线性变换
一定范围内灰度值进行线性变换,范围外的灰度可以保持不变或者固定值
3)分段线性变换
灰度区间分成两段或多段分别进行线性变换
非线性灰度级变换
用某些非线性变换函数作为灰度变换的变换函数时,可实现图像灰度的非线性变换。对数变换时常见的非线性变换
对数变换表达式:
g(x,y)=a?ln[f(x,y)+1]lnc
%%非线性(对数)灰度级变换
I=double(imread(‘099.jpg‘));%读取图像并转换为double型(0~255)
NI=46*log(I+1);%对数变换、拉伸变换
figure,imshow(NI/256);
直方图修正
数字图像处理中,灰度直方图是最简单和常用的工具
灰度直方图
1)灰度直方图是灰度级的函数,表示是数字图像中每一灰度级与其出现频数(该灰度上出现像素的数目)间的统计关系
公式定义为:
P(rk)=nkN
N是一幅图的总像素数,nk是第k级灰度的像素数,rk表示第k个灰度级,P(rk)表示该灰度级出现的相对频数
这里写代码片
I=imread(‘099.jpg’);
figure,
subplot(1,2,1)
imshow(I);
title(‘Original Image’);
G=rgb2gray(I);
subplot(1,2,2);
imhist(G);
title(‘Histogram’);
直方图性质
1)直方图不具有空间特性
2)直方图反映图像的大致描述
3)一幅图像唯一对应相应的直方图,而不同图像可以有相同的直方图
4)若一幅图像可分为多个子区,则子区直方图之和等于全图直方图
直方图修正法理论
核心就是找到满足下述两个条件的变换函数 T(r)
1)T(r)在0?r?1区域内单值单调增加,以保证灰度级从黑到白次序不变
2)T(r)在0?r?1区域内满足0?s?1,以保证变换的像素灰度级仍在允许的灰度级范围内
直方图均衡化
采用灰度级r的累积分布函数作为变换函数的直方图修正法
s=T(r)=∫r0Pr(w)dw
均衡化处理的变换函数T(r)为:
sk=T(rk)=∑kj=0Pr(rj)=∑kj=0njN
算法步骤
1)统计原始图像直方图
2)计算新的灰度级
3)修正sk为合理的灰度级
4)计算新的直方图
5)用处理后的新会都代替处理前的灰度,生成新图像
%%直方图均衡化
I=imread(‘099.jpg‘);
G=rgb2gray(I);%二值化处理
N=histeq(G);%直方图均化
figure,
imshow(N);
直方图规定化
直方图均衡化能够自动增强整个图像的对比度,但具体增强效果不容易控制,处理的结果总是得到全局均匀化的直方图。实际中有时需要变换直方图,使之成为某个特定的形状,从而有选择地增强某个灰度值范围内的对比度。
正确地选择规定化的函数可以获得比直方图均衡化更好的效果
直方图规定化的实现
是通过直方图均衡化实现的,主要3个步骤
对原始图的直方图进行灰度均衡化处理,即把灰度r变换到灰度s
sk=T(rk)=∑kj=1Pr(rj)=∑kj=0njN
2)规定需要的直方图,并计算能使规定的直方图均衡化的变换
vl=G(zl)=∑li=0Pz(zi)
3)建立均衡化直方图的对应关系,这里采用单映射(SML)规则,找到使下式为最小值对应的k和l的值,然后将所有pr(ri)对应到pv(vi)去
|∑j=1kPr(rj)?∑ji=0Pz(zi)|
最后呈现均匀分布、指数分布等