淘先锋技术网

首页 1 2 3 4 5 6 7

1、imadjust函数

g=imadjust(f,[low_in,high_in],[low_out,high_out],gamma)

f为输入灰度图像,将low_in和high_in之间的灰度值映射到low_out到high_out之间

gamma大于1,映射函数下凸;小于1,上凸;gamma默认为1,即线性映射

例:

利用imadjust函数进行灰度变换。

clc
clear
f=imread('E:\桌面\数字图像matlab\CH01\charpt2_1.tif');

%生成负片
g1=imadjust(f,[0,1],[1,0]);

%将0.5到0.75之间的灰度扩展到0-1之间
g2=imadjust(f,[0.5,0.75],[0,1]);

%gamma=2时
g3=imadjust(f,[],[],2);

%绘图
subplot(221),imshow(f)
title('原片')
subplot(222),imshow(g1)
title('负片')
subplot(223),imshow(g2)
title('0.5-0.75')
subplot(224),imshow(g3)
title('gamma=2')

结果如下:

注:对于负片的生成也可直接用函数imcomplement。

g=imcomplement(f);

2、stretchlim函数

在imadjust函数选择灰度区间时,也可使用stretchlim自适应选择。

low_high=stretchlim(f,tol),生成的是一个1*2的向量

而后应用imadjust函数

g=imadjust(f,low_high,[]);

其中tol是一个1*2的向量【tol(1),tol(2)】,默认为【0.01,0.99】,即低于tol(1)的像素占比1%,高于tol(2)的像素占比1%(1-0.99),如果输入的是一个数,那么tol=[tol,1-tol]。

 例:应用stretchlim函数自适应选择灰度区间

f=imread('E:\桌面\数字图像matlab\CH01\charpt2_1.tif');
g=imadjust(f,stretchlim(f),[1 0]);

subplot(121),imshow(f)
title('原片')
subplot(122),imshow(g)
title('负片')

stretchlim输出为:自适应选择区间为[0.118,0.933],比选择[0,1]进行映射,效果更好