您的位置:首页 > 编程语言 > MATLAB

Matlab图像处理之灰度变换函数

2016-04-20 19:08 579 查看
首先明确几个概念

1,灰度:对于通常所谓的黑白图像,把黑色和白色之间按对数关系分为若干等级称为灰度。灰度分为256阶,用灰度表示的图像称作灰度图.在图像中用0~255表示,0是全黑,255是全白

2.对比度:对比度值一幅图像中敏感区域最亮的白和最暗的黑之间的不同亮度层级的测量,差异范围越大代表对比月大。好的对比率120:1就可以容易的显式生动、丰富的色彩,当对比率达到300:1时便可以支持各阶的颜色。

imadjust()函数

前面博文介绍过imadjust()函数是针对灰度图进行灰度变换的基本图像处理工具箱函数。特别注意的是imadjust()函数会截掉在其取值范围外的灰度值,gamma值大于1图像变暗输出,gamma值小于1输出图像变亮。

stretchlim()函数

基本语法:Low_High=stretchlim(f);其中f是输入图像.较为通用的语法是:Low_High=stretchlim(f,tol);其中tol是两元素向量[Low_frac high_frac],指定了图像低和高像素值饱和度的百分比。如果tol是标量,那么low_frac=tol,high_frac=1-low_frac;饱和度等于低像素和高像素的百分比。如果在参数中忽略tol那么饱和度水平为2%,tol默认值为[0.01 0.99].如果选择tol=0,那么Low_High=[min(f(:))
max(f(:))].

Low_High的值指定灰度图像f中所有像素值底部和顶部饱和度的1%,结果以向量[low_in high_in]的形式应用于imadjust函数如:

g=imadust(f,stretchlim(f),[]);

下面以提高一幅图片对比度为例,提高对比度最简单的方法是提高白色画面亮度

%提高图像对比度
%载入图像
srcImage=imread('boiler.bmp');
info=imfinfo('boiler.bmp');

subplot(1,3,1);
imshow(srcImage);
title('原图像');

image1=imadjust(srcImage,[ ],[ ],0.8);
subplot(1,3,2);
imshow(image1);
title('gamma值调整');

image2=imadjust(srcImage,stretchlim(srcImage),[],0.8);
subplot(1,3,3);
imshow(image2);
title('stretchlim');

运行结果如下:



对数及对比度扩展变换

对数变换的一项主要应用是压缩动态范围。当执行对数变换时通常期望得到的是将压缩值返回至显式的全域,对于8比特来说在MATLAB中最简易的方法是使用下面语句:

g=im2uint8(mat2gray(f));


使用mat2gray将值限定在[0,1]范围内,使用im2uint8将值限定在[0,255]范围内。把图像转换为uint8类。函数把输入灰度图的窄范围扩展到输出灰度图的宽范围,结果就是高对比度的一幅图片。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: