当前位置首页 > 百科> 正文

im2double

2019-11-09 10:23:43 百科
im2double

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
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net