在子采样后将图像大小调整为原始大小

时间:2015-04-21 07:31:56

标签: matlab image-processing subsampling

我使用matlab对图像进行二次采样。但我有一项任务是将二次采样图像重置为原始大小。我用最近邻近似法和平均相邻像素来完成它工作正常。还有其他算法吗?

提前致谢。

3 个答案:

答案 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)

是的,还有至少两种方法:

  1. 像素区域重新采样
  2. 双三次插值

答案 2 :(得分:1)

你想要的是一个基本的图像调整大小正确吗? description from mathworks提供了几种算法。