Как выполнить бикубическую интерполяцию, если не все соседи известны?

Учитывая только 4 значения ребер, выделенных красным, если я хочу узнать значение в f(1,2), и его ближайшие 16 соседей (не уверены, можно ли включить их сами?) Показаны на рисунке, могу ли я присвоить 0 значений неизвестные функции и выполнять бикубическую интерполяцию для получения f(1,2)?

Впоследствии, используя значение f(1,2), полученное из вышеизложенного, я использовал бы его значение в дополнение к известным значениям для вычисления других неизвестных значений.

Моя концепция неверна? Может ли кто-нибудь научить меня, если я ошибаюсь? Благодарю.

1 ответ

Решение

Если вы замените 0 на ваши неизвестные значения, вы получите все значения, смехотворно близкие к нулю. Не подставляйте ничего неизвестным, используйте только фактически известные значения для заполнения остальных.

Для заполнения пикселей бикубическая интерполяция должна работать очень хорошо, даже если вы не знаете всех соседей. Просто информации меньше. Статьи из Википедии о передискретизации и бикубической интерполяции являются хорошей отправной точкой. Если вы ищете реальные реализации, попробуйте функцию OpenCV cvResize.

Другие вопросы по тегам