im2single与单身 - 差异?

kal*_*cey 1 floating-point matlab image-processing matrix

应用于灰度图像时,MATLAB im2singlesingleMATLAB 之间有什么区别?

我正在做一些图像处理工作,发现改变一个电话single(image)使im2single(image)我的表现增加了三倍,我现在对这种差异非常好奇.

单点im2single的MATLAB文档在这一点上似乎没有用.

Sue*_*ver 6

类似于im2double,im2single实际上会将所有图像数据标准化,以便所有值都在0和之间1.在将图像保存到文件或使用文件显示时,必须进行此缩放以获得正确的行为imshow.

另一方面,single将简单地将图像数据转换为single没有缩放的数据类型.

基准

你说这im2single比单身快.鉴于上述信息,这是不太可能的.我设计了一个基准来测试两个不同尺寸的图像.

function benchit()

    N = round(linspace(1, 10000, 20));

    times1 = zeros(size(N));
    times2 = zeros(size(N));

    for k = 1:numel(N)
        im = rand(N(k));
        times1(k) = timeit(@()im2single(im));
        im = rand(N(k));
        times2(k) = timeit(@()single(im));
    end

    figure
    p(1) = plot(N, times1, 'DisplayName', 'im2single');
    hold on
    p(2) = plot(N, times2, 'DisplayName', 'single');
    legend(p)

    xlabel('Image Size')
    ylabel('Execution Time (sec)')
end
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述