这种方法适用于增强嵌入图像暗色区域的白色或灰色细节。
src = imread('Fig0303(a)(breast).tif'); imshow(src); result = imadjust(src, [0 1], [1 0]); figure, imshow(result);
(普通线性变换)
src = imread('Fig0316(a)(moon).tif'); imshow(src); result = imadjust(src, stretchlim(src), [ ]); figure, imshow(result);
(使用对数变换)
src = imread('Fig0305(a)(spectrum).tif'); imshow(src); result = im2uint8( mat2gray( log(1 + double(src)) ) ); figure, imshow(result);
在图像处理领域,二值图像运算量小,并且能够体现图像的关键特征,因此被广泛使用。
src = imread('Fig0409(a)(bld).tif'); imshow(src); [row clumn] = size(src); for p = 1:row for q = 1:clumn if src(p,q)>=125 src(p,q)=255; else src(p,q)=0; end end end figure,imshow(src);
imadjust()
imadjust在数字图像处理中用于进行图像的灰度变换(调节灰度图像的亮度或彩色图像的颜色矩阵),该函数先将图像映射到[0 1],例如uint8类型的图像会先乘以255来决定实际应用中的值。调用格式:J = imadjust(I)将灰度图像I 中的亮度值映射到 J 中的新值并使 1% 的数据是在低高强度和饱和,这增加了输出图像 J 的对比度值。此用法相当imadjust(I,stretchlim(I))
J = imadjust(I,[low_in; high_in],[low_out; high_out])将图像I中的亮度值映射到J中的新值,即将low_in至high_in之间的值映射到low_out至high_out之间的值。low_in 以下与 high_in 以上的值被剪切掉了,也就是说,low_in 以下的值映射到 low_out,high_in 以上的值映射到high_out。它们都可以使用空的矩阵[],默认值是[0 1]。
J = imadjust(I,[low_in; high_in],[low_out; high_out],gamma)将图像 I 中的亮度值映射到 J 中的新值,其中 gamma指定描述值I和值J关系的曲线形状。如果gamma小于1,此映射偏重更高数值(明亮)输出,如果gamma大于1,此映射偏重更低数值(灰暗)输出,如果省略此参数,默认为(线性映射)。
newmap = imadjust(map,[low_in; high_in],[low_out; high_out],gamma)调整索引色图像的调色板map。如果low_in, high_in, low_out, high_out 和 gamma 都是标量,那么对 r,g,b 分量同时都做此映射。对于每个颜色分量都有唯一的映射,当 low_in 和 high_in 同时为1*3向量或者 low_out 和 high_out 同时为1*3向量或者 gamma 为1*3向量时。调整后的颜色矩阵 newmap和 map 有相同的大小。
RGB2 = imadjust(RGB1,...)对 RGB 图像RGB1 的红、绿、蓝调色板分别进行调整。随着颜色矩阵的调整,每一个调色板都有唯一的映射值。
stretchlim()
LOW_HIGH = stretchlim(src, tol)该函数找到对比度扩展图像的对照,可用于imadjust(),tol = [LOW_FRACT HIGH_FRACT] 指定图像低像素值和高像素值饱和度的百分比如果tol是一个标量,tol = LOW_FRACT、HIGH_FRACT = 1 - LOW_FRACT,饱和度等于低像素值和高像素值的百分比。如果在参数中忽略toll,那么饱和度水平为2%,tol的默认值为[0.01 0.99]。如果选择tol = 0, LOW_HIGH = [min(I(:)); max(I(:))].
mat2gray()
调用格式:I = mat2gray(A, [amin amax])将图像矩阵A中介于amin和amax的数据归一化处理, 其余小于amin的元素都变为0, 大于amax的元素都变为1。I = (A-amin)/(amax-amin)
I = mat2gray(A)将图像矩阵A归一化为图像矩阵I, 归一化后矩阵中每个元素的值都在0到1范围内(包括0和1)。I = (A-amin)/(amax-amin)
im2uint8()
函数功能: 把图像数据类型转换为无符号八位整型。如果输入图像是无符号八位整型的,返回的图像和源图像相同。如果源图像不是无符号八位整型的,该函数将返回和源图像相同但数据类型为uint8的图像(必要时对图像进行调整)。调用格式:I = im2uint8(src)把灰度图像src的数据类型转换成无符号八位整型的后, 返回。(但src并不发生改变)
RGB2 = im2uint8(RGB1)把真彩色图像的数据类型转换成无符号八位整型的, 并返回。注意这里并不是将真彩色图像转换成为黑白图像, 这里仅仅改变了图像数据的类型。
I = im2uint8(BW)把二值图像BW的数据格式转换成uint8格式的, 由于二值图像的图像数据仅仅取0和1, 所以这里的转换效果仅仅是把1映射成255。
【数字图像处理之(三)】用图像增强谈灰度变换,布布扣,bubuko.com
原文地址:http://blog.csdn.net/u012771236/article/details/35784347