第7章图像灰度变换
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.1二值化和阈值处理
一幅图像包括目标物体、背景还有噪声,怎样 从多值的数字图像中只取出目标物体,最常用的方 法就是设定某一阈值T,用T将图像的数据分成两 大部分:大于T的像素群和小于T的像素群。这是 研究灰 度变换 最特殊 的方法 ,称为 图像的 二值化 ( binarization )。二值化处理就是把图像 f(x,y) 分成目标物体和背景两个领域。
其他灰度切分 (a)加亮[A,B]范围,其他 灰度减小为一恒定值 (b)加亮[A,B]范围,其他 灰度级不变 (c)原图像 (d)使用(a)变换的结果
(a)
(b)
(c)
(d)
线性动态范围调整
动态范围:是指图像中从暗到亮的变化范围。 动态范围对人视觉的影响: 由于人眼所可以分辨的灰度的变化范围是有 限的,所以当动态范围太大时,很高的亮度值 把暗区的信号都掩盖了。 动态范围调整原理: 通过动态范围的压缩可以将所关心部分的灰 度级的变化范围扩大。
指数变换
g ( x, y) c( f ( x, y) a)
灰度变换函数为指数函数;其实现的效果是扩展高灰度区, 压缩低灰度区: b 其中a,b,c是按需要可以调整的参数;
2014年12月9日5时53分
作用:和对数变换的效果相反,指数变换使得高灰度范围 扩展,压缩低灰度范围,其一般表达式为
J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma) 将图像I中的亮度值映射到J中的新值,其中 gamma指定描述值I和值J关系的曲线形状。如果 gamma小于1,此映射偏重更高数值(明亮)输出, 如果gamma大于1,此映射偏重更低数值(灰暗)输 出,如果省略此参数,默认为(线性映射)。
[X,map]=imread('forest.tif'); I=ind2gray(X,map);%索引图像转化为灰度图像 J=imadjust(I,[0 1],[0 1],0.5);%gamma校正 figure, subplot(121),imshow(I); subplot(122),imshow(J)
8 3 4 5 0
3 4 5
5 3 8 9 9
9 5 0 4 4
9 8 8 0 8
9 5 6 7 0
g(i,j)=9*log(f(i,j)+1)
8 4
作用:将暗的部分扩展,而将亮的部分抑制。
I=imread('lena.bmp'); subplot(121),imshow(I); I=double(I); I2=42*log(1+I); I2=uint8(I2); subplot(122),imshow(I2);
4 对比度线性展宽处理方法 按照下面的公式进行点对点的映射:
f (i, j ) 0 f (i, j ) a g (i, j ) ( f (i, j ) a) g a a f (i, j ) b ( f (i, j ) b) g b f (i, j ) 255 b
线性变换关系
分段线性变换
应用目的:为了突出感兴趣目标所在的灰度区间,相 对抑制那些不感兴趣的灰度空间,可采用分段线性变换。 原理是进行像素点对点的,灰度级的影射。 设新、旧图的灰度级分别为g和f,要求g和f均在[0, 255]间变化,但是g的表现效果要优于f。
(1)扩展感兴趣的,牺牲其他 对于感兴趣的[a,b]区间,采用斜率大于1的线性变换来进行扩展, 而把其他区间用a或b来表示。变换函数是
非零元素取一法
0, x 1 f ( x) 255, x 1
clear; close all I=imread('lena.bmp'); subplot(131),imshow(I);title('灰度图像'); subplot(132),imhist(I);title('图像直方图'); J=find(I<1); I(J)=0; J=find(I>=1); I(J)=255; subplot(133),imshow(I);title('图像二值化(阈 值为1)');
其中,T(.)表示增强图像和原图像的灰度变换函数
灰度变换分为线性变换 (正比或反比)和非线性 变换。非线性变换有对 数的(对数和反对数的), 幂次的(n次幂和n次方 根变换) 。 下面是一些灰度变换曲 线。
用于图像增强的某些基本灰度变换
线性变换
利用线性函数进行变换,线性变换一般关系式为:
令图像f(m,n)的灰度范围是【a,b】,线性变换后图像 g(m,n)的灰度范围为【c,d】,如下图
7 0
在MATLAB图像处理工具箱中,用于上述灰度 级变换的函数是imadjust,其调用格式如下: J = imadjust(I) 将灰度图像I中的亮度值映射到J中的新值,这 增加了输出图像J的对比度值。
J=imadjust(I,[low_in;high_in],[low_out;high_o ut]) 将图像I中的亮度值映射到J中的新值,即将low_in 至high_in之间的值映射到low_out至high_out之间的 值。low_in以下与high_in以上的值被剪切掉了,也就 是说,low_in以下的值映射到low_out,high_in以上 的值映射到high_out。
7.2灰度变换
为什么要灰度变换?
由于图像的亮度范围不足或非线性会使图像 的对比度不理想。采用图像灰度值变换方法,即 改变图像像素的灰度值,以改变图像灰度的动态 范围,增强图像的对比度。
2 灰度变换
设原图像(像素灰度值)为f(m,n),处理后图像(像 素灰度值)为g(m,n),则对比度增强可表示为:
灰度直方图计算示例
1 6 2 4 3 3 4 2 5 2 6 1 1 5 2 4 3 5 4 6 5 2 6 14
1
3 1 1
6
4 4 3
6
5 6 6
4
6 6 4
6
6 2 6
6
6 3 6
灰度直方图
灰度直方图的性质
1 灰度直方图只能反映图像的灰度分布,而不能反映图像像素的位置, 即丢失了像素的位置信息。
(i 1,2,..., m; j 1,2,..., n)
g
255 γ gb
α ,β ,γ 是斜率, 其值是: g g ga 255 gb a , b , fa fb f a 255 f b 图中看出α <1, γ <1,是对非重要 景物的抑制 β >1,是对重要景物的对比度展宽
双固定阈值法
0, x T1 f ( x) 255, T1 x T 2 0, x T 2
(a) 0-255-0型灰度变换函数
(b) 255-0-255型灰度变换函数
clear; close all I=imread('lena.bmp'); subplot(121),imshow(I) title('灰度图像'); J=find(I<150|I>220); I(J)=0; J=find(I>=150&I<=220); I(J)=255; subplot(122),imshow(I) title('图像二值化');
第七章 图像灰度变换
1.二值化和阈值处理 2.灰度变换 3.灰度直方图变换
通常经输入系统获取的图像信息中含有各种各样 的噪声与畸变。例如 室外光照度不够均匀会造成图像灰度过于集中; 由CCD(摄像头)获得的图像经过A/D转换、线路传 送都会产生噪声污染等; 这些因素影响了系统图像的清晰程度,降低了图 像质量,因此,在对图像进行分析之前,必须要对图 像质量进行改善。
2 一幅图像对应唯一的灰度直方图,反之不成立。不同的图像可对应相 同的直方图。
3 一幅图像分成多个区域,多个区域的直方图之和即为原图像的直方图。
β
ga
α a b 255
f
灰窗级切片(灰度切割)
1 什么是灰窗级切片? 是指将所需检测的目标与画面中其他的部分分离开, 目标部分置为白(黑),而非目标部分置为黑(白)。 这样就把需要的目标突出显示出来了。 2 灰窗级切片有什么用? 在图像处理中,经常要对某个目标物的形状、边界、 截面面积以及体积进行测量,从而得到该目标物功能方 面的重要信息。如,医学中要对人体器官和组织进行精 确测量。
clear all; I=imread('pout.tif'); %读入原始图像 J=imadjust(I); %把I的范围拉伸到[0 1] K=imadjust(I,[0.3 0.7],[]);%局部拉伸,把[0.3 0.7]内的灰度拉伸为[0 1] subplot(1,3,1);imshow(I);xlabel('原始图像'); subplot(1,3,2);imshow(J);xlabel('全局拉伸'); subplot(1,3,3);imshow(K);xlabel('分段拉伸');
g m, n cf (m, n) b
其中 c 和 为常数。 值的选择对于变换函数的特性有很 大影响。 应用范围,比较广泛,可代替对数变换和反对数变换。
7.3 灰度直方图变换
什么是灰度直方图? 灰度直方图是灰度级的函数,是对图像中灰 度级分布的统计,反映的是一幅图像中各灰度级 像素出现的频率。横坐标表示灰度级,纵坐标表 示图像中对应某灰度级所出现的像素个数,也可 以是某一灰度值的像素数占全图像素数的百分比, 即灰度级的频率。
对数变换
g ( x, y) a b logc ( f ( x, y) 1)
灰度变换函数为对数函数;其实现的效果是扩展低灰度区, 压缩高灰度区: 其中a,b,c是按需要可以调整的参数;
2014年12月9日5时53分
1 2 3 6 2
3 1 6 8 9
9 3 0 2 2
9 7 6 0 6
(2)扩展感兴趣的,压缩其他 在扩展感兴趣的[a,b]区间的同时,为了保留其他区间的灰度层次, 也可以采用其它区间压缩的方法,既有扩有压,变换函数为
线性变换的应用
对比度线性展宽(拉伸)
1 什么是对比度线性展宽? 对比度线性展宽处理 , 就是图像灰度值的分布拉伸、展宽。 2 为什么要进行对比度展宽? 之所以要进行对比度展宽,是因为有时获得的图像画面效 果不好,画面中期望观察的对象因对比度不足而不够清晰,因 此要通过对比度展宽的方法获得对画质的改善。 3 对比度线性展宽原理 实际就是图像灰度值的线性映射。进行像素点对点的,灰 度级的影射。
将原来[0,255]范围内的亮暗变化,压缩到[a,b] 范围内。再将[a,b]范围内的灰度值伸展到[0,255]。 g
0 a
黑 白
b 1
255
0 255a 255 * h (i, j ) h(i, j ) (b a) b a 255
h(i, j ) a h(i, j ) (a, b) h(i, j ) b
3 灰窗级切片实现原理? 分段线性灰度变换。表达式如下。
0 f (i, j ) a a f (i, j ) b b f (i, j ) 255
g
255
(i 1,2,..., m; j 1,2,..., n)
a b 255
f
特点:突出目标的 轮廓,消除背景细 节
特点:突出目 标的轮廓,保 留背景细节
a
b
255
f
1 2 3 6 2
3 1 6 8 9
9 3 0 2 2
9 7 6 0 6
8 3 4 5 0
2 2 3 6
3 2 6 7
7 3 2 2
7 7 6 2
7 3 4 5
y=1.8*x-3.6
黑:0 白:9
2 7
0
7
2
6
2
0
百度文库
2
9
9
9
0
2
0
7 9 9
2
0 0 0
9
7 0 7
2
4 5 0
有四舍五入
作用:进行亮暗限幅
固定阈值法
0, x T f ( x) 255, x T
clear;close all I=imread('lena.bmp'); subplot(121),imshow(I) title('灰度图像'); J=find(I<150); I(J)=0; J=find(I>=150); I(J)=255; subplot(122),imshow(I) title('图像二值化(阈值为150)');