Octave:如何以双重格式加载灰度图像?

时间:2015-05-12 10:44:19

标签: octave

我正在使用Octave中的imread函数来加载图像:

image = imread ("data/images/image1.jpg")(:);

这显然是将图像加载为整数矩阵,值为0-255。

我想将其加载为值为0.0-1.0的双精度矩阵。我可以像这样转换它。

doubleImage = double(image) / 255.0;

然而,转换它非常慢,特别是对于很多图像。有没有办法直接将图像作为双打矩阵加载?

1 个答案:

答案 0 :(得分:1)

不,没有办法直接把它读成双打。它无论如何都没有意义,因为图像是文件中的整数,因此必须首先读取整数。如果要进行另一种类型的转换,那么它确实是分开的。或者,可以使用以双浮点精度存储图像的文件格式。

但是,有一种更好的方法可以做你正在做的事情来转换为双倍。

pkg load image;
img = imread ("image1.jpg");
img = im2double (img);

使用im2double不会让它更快(它执行的操作与你的相同)但是如果以后读取的图像是uint16,它将为您节省时间,并且即使图像已经是双等级。

另外,我不知道转换成双倍的速度是多么慢。这是一个非常快速的操作。