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


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

1

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

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


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

0

s=1/2

[1,2,1]T[1,2,1]

Вы неправы. Вы забыли масштабный коэффициент 0,25? ... и если так, то это обычный выбор для s = 1/2, а не 1 / sqrt (0,5).
Бен-Ури,

Любой комментарий о взятии @ Бен-Ури? Система помечает этот пост как некачественный из-за его длины. Пожалуйста, рассмотрите возможность пересмотра или удаления.
Питер К.

1
ss2

ssσσsx,sy
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.