4

我必须从低分辨率图像中获取高分辨率图像。这可以使用插值方法来实现。我知道在 matlab 中imresizeinterp2函数将执行任务,但我必须在不使用任何内置函数的情况下编写代码。我了解双线性插值是如何工作的,但我似乎无法在我的代码中将它拼凑在一起。我将不胜感激任何帮助和建议。

到目前为止,这是我的代码:

clear all; close all; clc;

input_im=imread('superman.png');
im=rgb2gray(input_im);
%subplot(1,2,1), imshow(input_im), title('Original Image');
%subplot(1,2,2), imshow(im), title('Gray Scale Input Image');

[m,n]=size(im); %obtain the size of gray scale image
S = input('  Now Enter Value : ');
Scale1 = floor(S);
Scale2 = floor(S);
scale = [Scale1, Scale2];

Oim=size(im);
Nim=max(floor(scale.*Oim(1:1)),1);

for i=1:Nim-1
    for j=1:Nim-1

       Q11=
       Q21=
       Q12=
       Q22=
       R1=((x2-x)/(x2-x1))*Q11+((x-x1)/(x2-x1))*Q21;
       R2=((x2-x)/(x2-x1))*Q12+((x-x1)/(x2-x1))*Q22;
       P=((y2-y)/(y2-y1))*R1+((y-y1)/(y2-y1))*R2;
    end
end
4

1 回答 1

-1

后面的代码interp2可用。只需在命令窗口中编写>> edit interp2,您就可以查看他们是如何实现它的。

于 2012-06-06T21:49:32.280 回答