Как Matlab вычисляет ядро бикубической интерполяции для больших ядер?

#matlab #image-processing

#matlab #обработка изображений

Вопрос:

Я использую функцию imresize от Matlab для уменьшения масштаба изображения размером 3000×2000 до 120×80 пикселей с использованием бикубической интерполяции. Я прошел через внедрение Matlab и заметил, что для каждого выходного пикселя вычисляется огромное количество весов ядра, а не только 4×4, как я ожидал. Кто-нибудь имеет представление о том, как Matlab вычисляет эти веса ядра?

Комментарии:

1. При понижающей дискретизации оно, вероятно, сглаживает изображение, чтобы избежать сглаживания.

Ответ №1:

При уменьшении масштаба изображений ядро передискретизации обычно расширяется, чтобы смягчить наложение псевдонимов, как сказал Крис.

Кубическое ядро для этого коэффициента 25-кратного прореживания будет равно 100×100 в единицах входных пикселей, что равно 4×4 в единицах выходных пикселей. Другими словами, каждый выходной пиксель вычисляется из участка размером 100×100 входных пикселей. Учитывая большой коэффициент прореживания, имеет смысл, что для сглаживания необходимо объединить так много пикселей.

Веса ядра для стандартной бикубической повторной выборки вычисляются из функции кубического ядра Keys, функции «W (x)», описанной здесь, в Википедии.