kal*_*cey 1 floating-point matlab image-processing matrix
应用于灰度图像时,MATLAB im2single
和single
MATLAB 之间有什么区别?
我正在做一些图像处理工作,发现改变一个电话single(image)
使im2single(image)
我的表现增加了三倍,我现在对这种差异非常好奇.
类似于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)