我使用matlab对图像进行二次采样。但我有一项任务是将二次采样图像重置为原始大小。我用最近邻近似法和平均相邻像素来完成它工作正常。还有其他算法吗?
提前致谢。
答案 0 :(得分:3)
如果您坚持不使用imresize
内置功能,则可以使用interp2
重新缩放图像。首先定义缩放因子f
。然后,您可以使用interp2
执行以下操作。
% Toy Data
I = im2double( imread( 'bag.png' ) );
% Set Scaling Factor
f = 1/5;
% Resize Image
D = interp2( I, linspace( 1, size(I,2), size(I,2) * f ), linspace( 1, size(I,1), size(I,1) * f )' );
% Plot Image
figure; imshow( I );
figure; imshow( D );
要了解此代码的作用,请首先了解此行找到linspace
中的细分数。
size(I,2) * f
创建linspace
后,可以使用interp2
作为第二个参数的cols和第三个参数的行。图像必须是双精度,因此im2double
。
如果你不想使用interp2
,正如@rayryeng所说,你应该参考如何做without any builtin functions here。
答案 1 :(得分:2)
答案 2 :(得分:1)
你想要的是一个基本的图像调整大小正确吗? description from mathworks提供了几种算法。