Параметры фильтра нижних частот для понижающей дискретизации изображения

11

Мне нужно уменьшить изображение с коэффициентом горизонтали и s y по вертикали ( s x , s y < 1 ).sxsysxsy1

Я хочу использовать конечный фильтр нижних частот перед понижением частоты дискретизации.n×m

Как определить параметры фильтра нижних частот ( и гауссово σ ), чтобы получить его как функцию от s x и s y ?n,mσsxsy

Конкретно меня интересует случай, когда .sx=sy=1/2

Бен-Ури
источник
вопрос, связанный с [
заданным
1
Спасибо, но этот вопрос не о том, как определить параметры фильтра в зависимости от коэффициента уменьшения масштаба.
Бен-Ури
Сколько вы хотите отфильтровать? Какова твоя цель?
1
Я хочу использовать фильтр нижних частот перед сэмплированием, чтобы избежать наложения. Я хочу сохранить как можно больше информации без алиасов.
Бен-Ури
1
Вам нужно взглянуть на преобразование Фурье фильтра, чтобы узнать, насколько хорошо он будет сокращать частоты наложения, сохраняя частоты ниже предела Найквиста для выборочного результата. Гауссовское преобразование - это еще один гауссовский, то есть резкого обрезания нет. Там почти всегда лучший выбор.
Марк Рэнсом

Ответы:

4

Вы должны подумать об изменении частоты Найквиста между обоими изображениями. Если частота Найквиста исходного изображения равна N, изображение с пониженной дискретизацией будет иметь более низкую частоту Найквиста, xN, где x относится к соотношению размеров между конечным изображением и исходным. Вам нужно будет удалить те пространственные частоты, которые выше, чем xN в исходном изображении, перед его понижением.

Спектр мощности гауссиана в пространстве изображений также является гауссовым в частотном пространстве. Если мы на мгновение проигнорируем второе измерение, гауссиан в пространстве изображений будет определен как exp (-x ^ 2 / s ^ 2), где x представляет ваши пиксели. Это отображается на частотное пространство как exp (-w ^ 2 * s ^ 2), где w - частота. Параметр (ы) сигмы показывает, что широкий гауссиан в пространстве изображений соответствует узкому гауссову в частотном пространстве.

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

NoNameNo
источник
Правильно, но как мне перевести это на дискретное сверточное ядро? (это был вопрос)
Бен-Ури
см. редактирование
пожалуйста
Спасибо, но все же есть ли формула для определения сигмы как функции максимальной частоты, которая должна быть в выходном результате?
Бен-Ури
Я не знаю никаких формул.
NoNameNo
1

Уже указывалось, что и m следует выбирать на основе σ .nmσ

Я потратил некоторое время на размышления о том, как выбрать лучше всего. Вот мои соображения. tl; dr: Возможно, я допустил некоторую ошибку, но σ 23.37 выглядит хорошим выбором для понижающей дискретизации с коэффициентом 2.σσ23.37

theV0ID
источник
0

Если вы выполняли большое уменьшение (скажем, 2x, 3x, 4x), вы можете выполнить усреднение пикселей для достижения хорошего сглаживания. Именно поэтому сглаживание использует много дополнительных CPU / GPU, чтобы видеоигры выглядели более четкими.

Поскольку вы переходите от изображения 1000x1000 к изображению 707x707 (просто пример для масштабного коэффициента), вы правы, что алиасинг может быть проблемой.

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

http://www.compuphase.com/graphic/scale.htm

OpenCV resize имеет несколько встроенных методов:

http://opencv.willowgarage.com/documentation/cpp/geometric_image_transformations.html#cv-resize

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


источник
отметим, что, хотя это и быстрое, усреднение пикселей не является идеальным решением для качества. Усреднение пикселей эффективно применяет прямоугольный фильтр. в частотном пространстве это эквивалентно умножению на функцию sinc, которая колеблется с пересечением нуля на гармониках Найквиста. у этого есть две проблемы: 1. он ослабляет высокую частоту, но не так сильно 2. он инвертирует фазу на каждом другом боковом лепестке. Оба (1) и (2) могут способствовать псевдонимам.
Тханг
0

У меня нет хорошего ответа для вас, но вот 2 варианта, которые вы можете попробовать:

  • σ3σ
  • если вы хотите делать точные вычисления с дискретизацией сигнала, то почему бы не использовать преобразование Фурье? Возьмите БПФ вашего изображения, оставьте только часть, соответствующую вашему целевому размеру, и инвертируйте преобразование. Это применит фильтр сглаживания к вашему спектру. Если для вас слишком много артефактов (рябь, звон), примените к вашему спектру фильтр Гаусса, ширина которого соответствует размеру вашей цели.
sansuiso
источник
0

s=1/2

[1,2,1]T[1,2,1]
nbubis
источник
Вы неправы. Вы забыли масштабный коэффициент 0,25? ... и если так, то это обычный выбор для s = 1/2, а не 1 / sqrt (0,5).
Бен-Ури,
Любой комментарий о взятии @ Бен-Ури? Система помечает этот пост как некачественный из-за его длины. Пожалуйста, рассмотрите возможность пересмотра или удаления.
Питер К.
1
ss2
ssσσsx,sy