Info

此问题已关闭。 请重新打开它进行编辑或回答。

hi, i need a code in matlabti increase the resolution of subpixel-shifted images, i am a beginner, please help, found and example, but i can`t figure it out

1 次查看(过去 30 天)
функция T = билинейная ( X , h , w )
% Предварительное распределение выходного размера
T = нули ( h , w , 'uint8' ) ; % Создайте матрицу в правильном типе, а не приведении!
% Расчетные соотношения размеров
ч = ч / размер ( X , 1 ) ; % Не с мягкими размерами!
wr = w / size ( X , 2 ) ;
% Заполнение исходного изображения 0, чтобы я не выходил за пределы
pad = 2 ;
X = padarray ( X , [ pad , pad ] , «оба» ) ;
% Loop
для col = 1 : w % Цикл по строке во внутреннем цикле быстрее !!
для строки = 1 : ч
% Для расчета эквивалентной позиции на исходном изображении
o_row = строка / час ;
o_col = col / wr ;
fo_row = floor ( o_row ) ; % Кода проще при использовании пола здесь!
fo_col = floor ( o_col ) ;
% Получение значений интенсивности от горизонтальных соседей
Q11 = double ( X ( fo_row + pad , fo_col + pad )) ; % Индексации с учетом заполнения !!
Q21 = double ( X ( fo_row +1 + pad , fo_col + pad )) ; % Приведение к двойному может не потребоваться, но MATLAB делает странные вещи с целочисленными вычислениями !!
Q12 = double ( X ( fo_row + pad , fo_col +1 + pad )) ;
Q22 = double ( X ( fo_row +1 + pad , fo_col +1 + pad )) ;
% Расчет относительных положений к увеличенному изображению
d_row = o_row - fo_row ;
d_col = o_col - fo_col ;
% Интерполяция по 2 первой оси и результат между ними
R1 = ( 1 - d_row ) * Q11 + d_row * Q21 ;
R2 = ( 1 - d_row ) * Q12 + d_row * Q22 ;
T ( строка , столбец ) = круглый (( 1 - d_col ) * R1 + d_col * R2 ) ;
конец
конец
конец

回答(0 个)

此问题已关闭。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by