Бикубическая интерполяция изображения

У меня есть изображение 4*4 "А" со следующими интенсивностями.

A =  55.0000   75.0000   95.0000   115.0000
     152.5000  110.0000  130.0000  150.0000
     125.0000  145.0000  165.0000  185.0000
     160.0000  55.0000   75.0000   95.0000

Я делаю бикубическую интерполяцию на этом изображении в Matlab, используя

 B =  interp2(A,'cubic')

Я получил 7*7 изображение (B) в качестве вывода.

B =    55.0000   65.0000   75.0000   85.0000   95.0000   105.0000  115.0000
       119.3750  100.0781  92.5000   99.5703   112.5000  122.5000  132.5000
       152.5000  123.4375  110.0000  116.0938  130.0000  140.0000  150.0000
       142.6563  135.5664  135.3125  143.6035  155.3125  165.3125  175.3125
       125.0000  135.0000  145.0000  155.0000  165.0000  175.0000  185.0000
       134.6875  120.2734  115.6250  123.1836  135.6250  145.6250  155.6250
       160.0000  91.8750   55.0000   57.1875   75.0000   85.0000   95.0000

Но мне нужно изображение 8*8. Как это может быть достигнуто. Пожалуйста, объясните метод тоже.

1 ответ

Решение

Должен сказать, что 7х7 кажется мне более логичным, поскольку одна точка вставлена ​​посередине между соседними точками. Тем не менее, если вы настаиваете на 8x8, вы можете создать координатную сетку и пересчитать ее:

[mgx mgy] = meshgrid(1:4,1:4);
[mgx2 mgy2] = meshgrid(linspace(1,4,8), linspace(1,4,8));
B= interp2(mgx, mgy, A, mgx2, mgy2, 'cubic')
Другие вопросы по тегам