2016-05-23 32 views
0

Я хочу реализовать адаптивный метод билинейной интерполяции для повышения дискретизации изображения с учетом in this paper. Но я встал на очень простой вопрос.Как выполнить адаптивную билинейную интерполяцию?

imresize() в Matlab выполняет билинейной интерполяции by taking a weighted average of pixels in the nearest 2x2 neighborhood.

Я хочу знать, как это Matlab определить эту 2х2 окрестность для граничных точек?

Что я действительно хочу знать, так это то, как определить окрестность граничных пикселей в прилагаемой статье, так как каждая граница не будет иметь окрестности по крайней мере в одном направлении, например, самая верхняя строка не будет иметь строка для определения любой вертикальной верхней маски, в крайнем левом столбце не будет столбца для определения любой горизонтальной маски и т. д.

Я дал пример Matlab, чтобы получить интуицию о том, как граничные случаи решаются языками в таких алгоритмах.

+0

Почему, по вашему мнению, существует какая-либо граница? Я предполагаю, что, например, верхний левый угол интерполированного изображения представляет собой интерполяцию пикселей '(1,1), (1,2), (2,1) и (2,2)'. Другими словами, в вашем исходном изображении размер 'NxN', ваше интерполированное изображение будет иметь размер' N-1xN-1' – BillBokeey

ответ

0

Окрестности «2x2», о которых вы упомянули, на самом деле являются интенсивностью в углах. Таким образом, вы собираетесь интерполировать в пределах этих значений интенсивности 2x2.

Чтобы лучше понять, попробуйте сделать следующее и вы увидите результат:

I=[1 2; 100 200] 
imresize(I,2, 'bilinear') 

Обратите внимание, что для «билинейной интерполяции» четыре угла является одинаковым, в отличии от «бикубического» по умолчанию. Надеюсь, это поможет.