Передискретизировать тысячи изображений в Matlab?

У меня есть большой размер массива MxNxP, где M и N - ширина и длина каждого изображения, а P - количество изображений ОС. Теперь это спутниковое изображение с разрешением 0,1 градуса. Можно ли передискретизировать эти изображения до разрешения 0,25 или 0,5 градуса в Matlab?

Я проверил функцию повторной выборки, но мне нужно изменить размер пикселя, а не частоту дискретизации. В конце концов, я все еще хочу P изображений.

Спасибо за вашу помощь.

P.S. Мне не нужно изменять размер.


person MelB    schedule 02.06.2017    source источник
comment
это не дубликат для вашей чрезвычайно любезной информации   -  person MelB    schedule 02.06.2017


Ответы (1)


Вы можете пропустить несколько строк и столбцов и вывести результат в матрицу?

A = rand(100,100) ;
A_reduced = A(1:2:10,1:2:10) ;

Вы можете использовать interp2, если вам нужно точное разрешение, как указано.

I = imread('peppers.png') ;
[nx,ny,t] = size(I) ;

x = 1:ny ;
y = 1:nx ;
[X,Y] = meshgrid(x,y) ;
%%
dx = 2 ; dy = 2 ;
[Xi,Yi] = meshgrid(1:dx:ny,1:dy:nx) ;

Zi = zeros(size(Xi,1),size(Xi,2),t) ;
for i = 1:t
    Zi(:,:,i) = interp2(X,Y,double(I(:,:,i)),Xi,Yi) ;
end
Zi = uint8(Zi) ;
person Siva Srinivas Kolukula    schedule 02.06.2017
comment
Нет извините. Этого я не могу сделать. Не могу допустить потери данных. Кроме того, размер пикселя при этом не изменится. - person MelB; 02.06.2017
comment
Как насчет интерп2? - person Siva Srinivas Kolukula; 02.06.2017
comment
да, я пытаюсь с этим. Спасибо за предложение. - person MelB; 02.06.2017