matlab的gscale函数
function g=gscale(f,varargin)
if length(varargin)==0
method='full8';
el method=varargin{1};
end
if strcmp(class(f),'double')&(max(f(:))>1 | min(f(:))<0)
f=mat2gray(f);
天麻的吃法end
switch method上海电力大学图书馆
ca 'full8'
夏常服g=im2uint8(mat2gray(double(f)));
ca 'full16'
g=im2uint16(mat2gray(double(f)));
ca 'minmax'
low = varargin{2};high = varargin{3};
if low>1 | low<0 |high>1 | high<0
台湾特色小吃error('Parameters low and high must be in the range [0,1]')
end
if strcmp(class(f),'double')
low_in=min(f(:));花园简笔画
high_in=max(f(:));
elif strcmp(class(f),'uint8')
low_in=double(min(f(:)))./255;装修申请>人际关系能力
high_in=double(max(f(:)))./255;
elif strcmp(class(f),'uint16')
low_in=double(min(f(:)))./65535;
high_in=double(max(f(:)))./65535;
end
g=imadjust(f,[low_in high_in],[low high]);
otherwi
error('Unknown method')象牙之塔
end
函数gscale的语法为:
g = gscale(f, method, low, high)
其中,f是将标定的图像。method的有效值是‘full8’(默认)和‘full16’,‘full8’把输出标定为全范围[0,255],⽽'full16'把输出标定为全范围[0,65535].如果使⽤这两个值之⼀,参数low和high在这两种变换中被忽略。method的第三个参数有效值是‘minmax’,在这种情况下,必须提供其值在[0,1]范围内的参数low和high。选中‘minmax’时,灰度级被映射到范围[low,high]内。尽管这些值指定在[0,1]范围内,但程序本⾝会根据输⼊的类别做出适当的标定,然后将输出转为与输⼊相同的类。例如,若f是uint8类,且将'minmax'限定在[0,0.5]范围内,则输出图像同样为uint8类,其值在[0,128]范围内。如f是浮点型图像,且其值在[0,1]范围以外,则程序在运⾏之前会将其转换到[0,1]范围内。