im2double

生活百科 2023-01-25 19:31生活百科www.aizhengw.cn

im2double

im2double是一个函式名,用途是能把图像数据类型转换为double类型。如果图像img是double型的,d=img;如果图像是logical或single型图像,d=double(img)。

基本介绍

  • 外文名im2double
  • 含义一个函式名
  • 用途把图像数据类型转换为double类型
  • d等于double(img)/65535
Matlab函式im2double简介
函式名称 im2double
如果图像img是double型的,d=img;如果图像是logical或single型图像,d=double(img);如果图像是uint8型,d=double(img)/255;如果图像是uint16型,d=double(img)/65535;
在matlab命令行视窗输入edit im2double,回车,打开im2double.m档案,部分代码如下
iptchecknargin(1,2,nargin,mfilename);
iptcheckinput(img,{'double','logical','uint8','uint16','int16','single'},{}, ...
mfilename,'Image',1);
if nargin == 2
iptcheckstrs(typestr, {'indexed'}, mfilename, 'type', 2);
end
if isa(img, 'double') %如果图像是double型的,图像处理前后不变
d = img;
elseif isa(img, 'logical') || isa(img, 'single') % 如果图像是逻辑图像或single类型图像,直接转换成double型
d = double(img);
elseif isa(img, 'uint8') || isa(img, 'uint16') %uint8型图像,range(2)=255;uint16型图像,range(2)=65535;
if nargin==1
range = getrangefromclass(img);
d = double(img) / range(2); %即d=double(img)/255或d=double(img)/65535;
else
d = double(img)+1;
end
else %int16
if nargin == 1
d = (double(img) + 32768) / 65535;
else
eid = sprintf('Images:%s:invalidIndexedImage',mfilename);
error(eid,'An indexed image can be uint8, uint16, double, %s', ...
'single, or logical.');
end
end
上一篇:Jesus Mayorga 下一篇:隐身新娘

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有